package org.eclipse.emf.ecore.xcore.ide.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.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
import org.eclipse.xtext.ide.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:54:1: entryRuleXPackage : ruleXPackage EOF ;
    public final void entryRuleXPackage() throws RecognitionException {
        try {
            // InternalXcore.g:55:1: ( ruleXPackage EOF )
            // InternalXcore.g:56:1: ruleXPackage EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXPackage();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:67:2: ( ( ( rule__XPackage__Group__0 ) ) )
            // InternalXcore.g:68:2: ( ( rule__XPackage__Group__0 ) )
            {
            // InternalXcore.g:68:2: ( ( rule__XPackage__Group__0 ) )
            // InternalXcore.g:69:3: ( rule__XPackage__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getGroup()); 
            }
            // InternalXcore.g:70:3: ( rule__XPackage__Group__0 )
            // InternalXcore.g:70:4: rule__XPackage__Group__0
            {
            pushFollow(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:79:1: entryRuleXAnnotation : ruleXAnnotation EOF ;
    public final void entryRuleXAnnotation() throws RecognitionException {
        try {
            // InternalXcore.g:80:1: ( ruleXAnnotation EOF )
            // InternalXcore.g:81:1: ruleXAnnotation EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXAnnotation();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:92:2: ( ( ( rule__XAnnotation__Group__0 ) ) )
            // InternalXcore.g:93:2: ( ( rule__XAnnotation__Group__0 ) )
            {
            // InternalXcore.g:93:2: ( ( rule__XAnnotation__Group__0 ) )
            // InternalXcore.g:94:3: ( rule__XAnnotation__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getGroup()); 
            }
            // InternalXcore.g:95:3: ( rule__XAnnotation__Group__0 )
            // InternalXcore.g:95:4: rule__XAnnotation__Group__0
            {
            pushFollow(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:104:1: entryRuleXStringToStringMapEntry : ruleXStringToStringMapEntry EOF ;
    public final void entryRuleXStringToStringMapEntry() throws RecognitionException {
        try {
            // InternalXcore.g:105:1: ( ruleXStringToStringMapEntry EOF )
            // InternalXcore.g:106:1: ruleXStringToStringMapEntry EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXStringToStringMapEntryRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXStringToStringMapEntry();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:117:2: ( ( ( rule__XStringToStringMapEntry__Group__0 ) ) )
            // InternalXcore.g:118:2: ( ( rule__XStringToStringMapEntry__Group__0 ) )
            {
            // InternalXcore.g:118:2: ( ( rule__XStringToStringMapEntry__Group__0 ) )
            // InternalXcore.g:119:3: ( rule__XStringToStringMapEntry__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXStringToStringMapEntryAccess().getGroup()); 
            }
            // InternalXcore.g:120:3: ( rule__XStringToStringMapEntry__Group__0 )
            // InternalXcore.g:120:4: rule__XStringToStringMapEntry__Group__0
            {
            pushFollow(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:129:1: entryRuleXImportDirective : ruleXImportDirective EOF ;
    public final void entryRuleXImportDirective() throws RecognitionException {
        try {
            // InternalXcore.g:130:1: ( ruleXImportDirective EOF )
            // InternalXcore.g:131:1: ruleXImportDirective EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDirectiveRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXImportDirective();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:142:2: ( ( ( rule__XImportDirective__Group__0 ) ) )
            // InternalXcore.g:143:2: ( ( rule__XImportDirective__Group__0 ) )
            {
            // InternalXcore.g:143:2: ( ( rule__XImportDirective__Group__0 ) )
            // InternalXcore.g:144:3: ( rule__XImportDirective__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDirectiveAccess().getGroup()); 
            }
            // InternalXcore.g:145:3: ( rule__XImportDirective__Group__0 )
            // InternalXcore.g:145:4: rule__XImportDirective__Group__0
            {
            pushFollow(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:154:1: entryRuleXAnnotationDirective : ruleXAnnotationDirective EOF ;
    public final void entryRuleXAnnotationDirective() throws RecognitionException {
        try {
            // InternalXcore.g:155:1: ( ruleXAnnotationDirective EOF )
            // InternalXcore.g:156:1: ruleXAnnotationDirective EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationDirectiveRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXAnnotationDirective();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:167:2: ( ( ( rule__XAnnotationDirective__Group__0 ) ) )
            // InternalXcore.g:168:2: ( ( rule__XAnnotationDirective__Group__0 ) )
            {
            // InternalXcore.g:168:2: ( ( rule__XAnnotationDirective__Group__0 ) )
            // InternalXcore.g:169:3: ( rule__XAnnotationDirective__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationDirectiveAccess().getGroup()); 
            }
            // InternalXcore.g:170:3: ( rule__XAnnotationDirective__Group__0 )
            // InternalXcore.g:170:4: rule__XAnnotationDirective__Group__0
            {
            pushFollow(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:179:1: entryRuleXClassifier : ruleXClassifier EOF ;
    public final void entryRuleXClassifier() throws RecognitionException {
        try {
            // InternalXcore.g:180:1: ( ruleXClassifier EOF )
            // InternalXcore.g:181:1: ruleXClassifier EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassifierRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXClassifier();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:192:2: ( ( ( rule__XClassifier__Alternatives ) ) )
            // InternalXcore.g:193:2: ( ( rule__XClassifier__Alternatives ) )
            {
            // InternalXcore.g:193:2: ( ( rule__XClassifier__Alternatives ) )
            // InternalXcore.g:194:3: ( rule__XClassifier__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassifierAccess().getAlternatives()); 
            }
            // InternalXcore.g:195:3: ( rule__XClassifier__Alternatives )
            // InternalXcore.g:195:4: rule__XClassifier__Alternatives
            {
            pushFollow(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:204:1: entryRuleXDataType : ruleXDataType EOF ;
    public final void entryRuleXDataType() throws RecognitionException {
        try {
            // InternalXcore.g:205:1: ( ruleXDataType EOF )
            // InternalXcore.g:206:1: ruleXDataType EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXDataType();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:217:2: ( ( ( rule__XDataType__Group__0 ) ) )
            // InternalXcore.g:218:2: ( ( rule__XDataType__Group__0 ) )
            {
            // InternalXcore.g:218:2: ( ( rule__XDataType__Group__0 ) )
            // InternalXcore.g:219:3: ( rule__XDataType__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getGroup()); 
            }
            // InternalXcore.g:220:3: ( rule__XDataType__Group__0 )
            // InternalXcore.g:220:4: rule__XDataType__Group__0
            {
            pushFollow(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:229:1: entryRuleXEnum : ruleXEnum EOF ;
    public final void entryRuleXEnum() throws RecognitionException {
        try {
            // InternalXcore.g:230:1: ( ruleXEnum EOF )
            // InternalXcore.g:231:1: ruleXEnum EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXEnum();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:242:2: ( ( ( rule__XEnum__Group__0 ) ) )
            // InternalXcore.g:243:2: ( ( rule__XEnum__Group__0 ) )
            {
            // InternalXcore.g:243:2: ( ( rule__XEnum__Group__0 ) )
            // InternalXcore.g:244:3: ( rule__XEnum__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getGroup()); 
            }
            // InternalXcore.g:245:3: ( rule__XEnum__Group__0 )
            // InternalXcore.g:245:4: rule__XEnum__Group__0
            {
            pushFollow(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:254:1: entryRuleXEnumLiteral : ruleXEnumLiteral EOF ;
    public final void entryRuleXEnumLiteral() throws RecognitionException {
        try {
            // InternalXcore.g:255:1: ( ruleXEnumLiteral EOF )
            // InternalXcore.g:256:1: ruleXEnumLiteral EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXEnumLiteral();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:267:2: ( ( ( rule__XEnumLiteral__Group__0 ) ) )
            // InternalXcore.g:268:2: ( ( rule__XEnumLiteral__Group__0 ) )
            {
            // InternalXcore.g:268:2: ( ( rule__XEnumLiteral__Group__0 ) )
            // InternalXcore.g:269:3: ( rule__XEnumLiteral__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getGroup()); 
            }
            // InternalXcore.g:270:3: ( rule__XEnumLiteral__Group__0 )
            // InternalXcore.g:270:4: rule__XEnumLiteral__Group__0
            {
            pushFollow(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:279:1: entryRuleSignedInt : ruleSignedInt EOF ;
    public final void entryRuleSignedInt() throws RecognitionException {
        try {
            // InternalXcore.g:280:1: ( ruleSignedInt EOF )
            // InternalXcore.g:281:1: ruleSignedInt EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSignedIntRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleSignedInt();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:292:2: ( ( ( rule__SignedInt__Group__0 ) ) )
            // InternalXcore.g:293:2: ( ( rule__SignedInt__Group__0 ) )
            {
            // InternalXcore.g:293:2: ( ( rule__SignedInt__Group__0 ) )
            // InternalXcore.g:294:3: ( rule__SignedInt__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSignedIntAccess().getGroup()); 
            }
            // InternalXcore.g:295:3: ( rule__SignedInt__Group__0 )
            // InternalXcore.g:295:4: rule__SignedInt__Group__0
            {
            pushFollow(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:304:1: entryRuleXClass : ruleXClass EOF ;
    public final void entryRuleXClass() throws RecognitionException {
        try {
            // InternalXcore.g:305:1: ( ruleXClass EOF )
            // InternalXcore.g:306:1: ruleXClass EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXClass();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:317:2: ( ( ( rule__XClass__Group__0 ) ) )
            // InternalXcore.g:318:2: ( ( rule__XClass__Group__0 ) )
            {
            // InternalXcore.g:318:2: ( ( rule__XClass__Group__0 ) )
            // InternalXcore.g:319:3: ( rule__XClass__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getGroup()); 
            }
            // InternalXcore.g:320:3: ( rule__XClass__Group__0 )
            // InternalXcore.g:320:4: rule__XClass__Group__0
            {
            pushFollow(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:329:1: entryRuleXMember : ruleXMember EOF ;
    public final void entryRuleXMember() throws RecognitionException {
        try {
            // InternalXcore.g:330:1: ( ruleXMember EOF )
            // InternalXcore.g:331:1: ruleXMember EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXMember();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:342:2: ( ( ( rule__XMember__Alternatives ) ) )
            // InternalXcore.g:343:2: ( ( rule__XMember__Alternatives ) )
            {
            // InternalXcore.g:343:2: ( ( rule__XMember__Alternatives ) )
            // InternalXcore.g:344:3: ( rule__XMember__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberAccess().getAlternatives()); 
            }
            // InternalXcore.g:345:3: ( rule__XMember__Alternatives )
            // InternalXcore.g:345:4: rule__XMember__Alternatives
            {
            pushFollow(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:354:1: entryRuleXAttribute : ruleXAttribute EOF ;
    public final void entryRuleXAttribute() throws RecognitionException {
        try {
            // InternalXcore.g:355:1: ( ruleXAttribute EOF )
            // InternalXcore.g:356:1: ruleXAttribute EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXAttribute();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:367:2: ( ( ( rule__XAttribute__Group__0 ) ) )
            // InternalXcore.g:368:2: ( ( rule__XAttribute__Group__0 ) )
            {
            // InternalXcore.g:368:2: ( ( rule__XAttribute__Group__0 ) )
            // InternalXcore.g:369:3: ( rule__XAttribute__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getGroup()); 
            }
            // InternalXcore.g:370:3: ( rule__XAttribute__Group__0 )
            // InternalXcore.g:370:4: rule__XAttribute__Group__0
            {
            pushFollow(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:379:1: entryRuleXReference : ruleXReference EOF ;
    public final void entryRuleXReference() throws RecognitionException {
        try {
            // InternalXcore.g:380:1: ( ruleXReference EOF )
            // InternalXcore.g:381:1: ruleXReference EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXReference();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:392:2: ( ( ( rule__XReference__Group__0 ) ) )
            // InternalXcore.g:393:2: ( ( rule__XReference__Group__0 ) )
            {
            // InternalXcore.g:393:2: ( ( rule__XReference__Group__0 ) )
            // InternalXcore.g:394:3: ( rule__XReference__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getGroup()); 
            }
            // InternalXcore.g:395:3: ( rule__XReference__Group__0 )
            // InternalXcore.g:395:4: rule__XReference__Group__0
            {
            pushFollow(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:404:1: entryRuleXOperation : ruleXOperation EOF ;
    public final void entryRuleXOperation() throws RecognitionException {
        try {
            // InternalXcore.g:405:1: ( ruleXOperation EOF )
            // InternalXcore.g:406:1: ruleXOperation EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXOperation();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:417:2: ( ( ( rule__XOperation__Group__0 ) ) )
            // InternalXcore.g:418:2: ( ( rule__XOperation__Group__0 ) )
            {
            // InternalXcore.g:418:2: ( ( rule__XOperation__Group__0 ) )
            // InternalXcore.g:419:3: ( rule__XOperation__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getGroup()); 
            }
            // InternalXcore.g:420:3: ( rule__XOperation__Group__0 )
            // InternalXcore.g:420:4: rule__XOperation__Group__0
            {
            pushFollow(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:429:1: entryRuleXParameter : ruleXParameter EOF ;
    public final void entryRuleXParameter() throws RecognitionException {
        try {
            // InternalXcore.g:430:1: ( ruleXParameter EOF )
            // InternalXcore.g:431:1: ruleXParameter EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXParameter();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:442:2: ( ( ( rule__XParameter__Group__0 ) ) )
            // InternalXcore.g:443:2: ( ( rule__XParameter__Group__0 ) )
            {
            // InternalXcore.g:443:2: ( ( rule__XParameter__Group__0 ) )
            // InternalXcore.g:444:3: ( rule__XParameter__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getGroup()); 
            }
            // InternalXcore.g:445:3: ( rule__XParameter__Group__0 )
            // InternalXcore.g:445:4: rule__XParameter__Group__0
            {
            pushFollow(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:454:1: entryRuleXTypeParameter : ruleXTypeParameter EOF ;
    public final void entryRuleXTypeParameter() throws RecognitionException {
        try {
            // InternalXcore.g:455:1: ( ruleXTypeParameter EOF )
            // InternalXcore.g:456:1: ruleXTypeParameter EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXTypeParameter();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:467:2: ( ( ( rule__XTypeParameter__Group__0 ) ) )
            // InternalXcore.g:468:2: ( ( rule__XTypeParameter__Group__0 ) )
            {
            // InternalXcore.g:468:2: ( ( rule__XTypeParameter__Group__0 ) )
            // InternalXcore.g:469:3: ( rule__XTypeParameter__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getGroup()); 
            }
            // InternalXcore.g:470:3: ( rule__XTypeParameter__Group__0 )
            // InternalXcore.g:470:4: rule__XTypeParameter__Group__0
            {
            pushFollow(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:479:1: entryRuleXMultiplicity : ruleXMultiplicity EOF ;
    public final void entryRuleXMultiplicity() throws RecognitionException {
        try {
            // InternalXcore.g:480:1: ( ruleXMultiplicity EOF )
            // InternalXcore.g:481:1: ruleXMultiplicity EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicityRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXMultiplicity();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:492:2: ( ( ( rule__XMultiplicity__Group__0 ) ) )
            // InternalXcore.g:493:2: ( ( rule__XMultiplicity__Group__0 ) )
            {
            // InternalXcore.g:493:2: ( ( rule__XMultiplicity__Group__0 ) )
            // InternalXcore.g:494:3: ( rule__XMultiplicity__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicityAccess().getGroup()); 
            }
            // InternalXcore.g:495:3: ( rule__XMultiplicity__Group__0 )
            // InternalXcore.g:495:4: rule__XMultiplicity__Group__0
            {
            pushFollow(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:504:1: entryRuleXBlockExpression : ruleXBlockExpression EOF ;
    public final void entryRuleXBlockExpression() throws RecognitionException {
        try {
            // InternalXcore.g:505:1: ( ruleXBlockExpression EOF )
            // InternalXcore.g:506:1: ruleXBlockExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBlockExpressionRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXBlockExpression();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:517:2: ( ( ( rule__XBlockExpression__Group__0 ) ) )
            // InternalXcore.g:518:2: ( ( rule__XBlockExpression__Group__0 ) )
            {
            // InternalXcore.g:518:2: ( ( rule__XBlockExpression__Group__0 ) )
            // InternalXcore.g:519:3: ( rule__XBlockExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBlockExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:520:3: ( rule__XBlockExpression__Group__0 )
            // InternalXcore.g:520:4: rule__XBlockExpression__Group__0
            {
            pushFollow(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:529:1: entryRuleXGenericType : ruleXGenericType EOF ;
    public final void entryRuleXGenericType() throws RecognitionException {
        try {
            // InternalXcore.g:530:1: ( ruleXGenericType EOF )
            // InternalXcore.g:531:1: ruleXGenericType EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXGenericType();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:542:2: ( ( ( rule__XGenericType__Group__0 ) ) )
            // InternalXcore.g:543:2: ( ( rule__XGenericType__Group__0 ) )
            {
            // InternalXcore.g:543:2: ( ( rule__XGenericType__Group__0 ) )
            // InternalXcore.g:544:3: ( rule__XGenericType__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getGroup()); 
            }
            // InternalXcore.g:545:3: ( rule__XGenericType__Group__0 )
            // InternalXcore.g:545:4: rule__XGenericType__Group__0
            {
            pushFollow(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:554:1: entryRuleXGenericTypeArgument : ruleXGenericTypeArgument EOF ;
    public final void entryRuleXGenericTypeArgument() throws RecognitionException {
        try {
            // InternalXcore.g:555:1: ( ruleXGenericTypeArgument EOF )
            // InternalXcore.g:556:1: ruleXGenericTypeArgument EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeArgumentRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXGenericTypeArgument();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:567:2: ( ( ( rule__XGenericTypeArgument__Alternatives ) ) )
            // InternalXcore.g:568:2: ( ( rule__XGenericTypeArgument__Alternatives ) )
            {
            // InternalXcore.g:568:2: ( ( rule__XGenericTypeArgument__Alternatives ) )
            // InternalXcore.g:569:3: ( rule__XGenericTypeArgument__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeArgumentAccess().getAlternatives()); 
            }
            // InternalXcore.g:570:3: ( rule__XGenericTypeArgument__Alternatives )
            // InternalXcore.g:570:4: rule__XGenericTypeArgument__Alternatives
            {
            pushFollow(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:579:1: entryRuleXGenericWildcardTypeArgument : ruleXGenericWildcardTypeArgument EOF ;
    public final void entryRuleXGenericWildcardTypeArgument() throws RecognitionException {
        try {
            // InternalXcore.g:580:1: ( ruleXGenericWildcardTypeArgument EOF )
            // InternalXcore.g:581:1: ruleXGenericWildcardTypeArgument EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericWildcardTypeArgumentRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXGenericWildcardTypeArgument();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:592:2: ( ( ( rule__XGenericWildcardTypeArgument__Group__0 ) ) )
            // InternalXcore.g:593:2: ( ( rule__XGenericWildcardTypeArgument__Group__0 ) )
            {
            // InternalXcore.g:593:2: ( ( rule__XGenericWildcardTypeArgument__Group__0 ) )
            // InternalXcore.g:594:3: ( rule__XGenericWildcardTypeArgument__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericWildcardTypeArgumentAccess().getGroup()); 
            }
            // InternalXcore.g:595:3: ( rule__XGenericWildcardTypeArgument__Group__0 )
            // InternalXcore.g:595:4: rule__XGenericWildcardTypeArgument__Group__0
            {
            pushFollow(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:604:1: entryRuleXQualifiedName : ruleXQualifiedName EOF ;
    public final void entryRuleXQualifiedName() throws RecognitionException {
        try {
            // InternalXcore.g:605:1: ( ruleXQualifiedName EOF )
            // InternalXcore.g:606:1: ruleXQualifiedName EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXQualifiedNameRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXQualifiedName();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:617:2: ( ( ( rule__XQualifiedName__Group__0 ) ) )
            // InternalXcore.g:618:2: ( ( rule__XQualifiedName__Group__0 ) )
            {
            // InternalXcore.g:618:2: ( ( rule__XQualifiedName__Group__0 ) )
            // InternalXcore.g:619:3: ( rule__XQualifiedName__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXQualifiedNameAccess().getGroup()); 
            }
            // InternalXcore.g:620:3: ( rule__XQualifiedName__Group__0 )
            // InternalXcore.g:620:4: rule__XQualifiedName__Group__0
            {
            pushFollow(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:629:1: entryRuleXID : ruleXID EOF ;
    public final void entryRuleXID() throws RecognitionException {
        try {
            // InternalXcore.g:630:1: ( ruleXID EOF )
            // InternalXcore.g:631:1: ruleXID EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIDRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXID();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:642:2: ( ( ( rule__XID__Alternatives ) ) )
            // InternalXcore.g:643:2: ( ( rule__XID__Alternatives ) )
            {
            // InternalXcore.g:643:2: ( ( rule__XID__Alternatives ) )
            // InternalXcore.g:644:3: ( rule__XID__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIDAccess().getAlternatives()); 
            }
            // InternalXcore.g:645:3: ( rule__XID__Alternatives )
            // InternalXcore.g:645:4: rule__XID__Alternatives
            {
            pushFollow(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:654:1: entryRuleValidID : ruleValidID EOF ;
    public final void entryRuleValidID() throws RecognitionException {
        try {
            // InternalXcore.g:655:1: ( ruleValidID EOF )
            // InternalXcore.g:656:1: ruleValidID EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getValidIDRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleValidID();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:667:2: ( ( ( rule__ValidID__Alternatives ) ) )
            // InternalXcore.g:668:2: ( ( rule__ValidID__Alternatives ) )
            {
            // InternalXcore.g:668:2: ( ( rule__ValidID__Alternatives ) )
            // InternalXcore.g:669:3: ( rule__ValidID__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getValidIDAccess().getAlternatives()); 
            }
            // InternalXcore.g:670:3: ( rule__ValidID__Alternatives )
            // InternalXcore.g:670:4: rule__ValidID__Alternatives
            {
            pushFollow(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:679:1: entryRuleFeatureCallID : ruleFeatureCallID EOF ;
    public final void entryRuleFeatureCallID() throws RecognitionException {
        try {
            // InternalXcore.g:680:1: ( ruleFeatureCallID EOF )
            // InternalXcore.g:681:1: ruleFeatureCallID EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFeatureCallIDRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleFeatureCallID();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:692:2: ( ( ( rule__FeatureCallID__Alternatives ) ) )
            // InternalXcore.g:693:2: ( ( rule__FeatureCallID__Alternatives ) )
            {
            // InternalXcore.g:693:2: ( ( rule__FeatureCallID__Alternatives ) )
            // InternalXcore.g:694:3: ( rule__FeatureCallID__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFeatureCallIDAccess().getAlternatives()); 
            }
            // InternalXcore.g:695:3: ( rule__FeatureCallID__Alternatives )
            // InternalXcore.g:695:4: rule__FeatureCallID__Alternatives
            {
            pushFollow(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:704:1: entryRuleXExpression : ruleXExpression EOF ;
    public final void entryRuleXExpression() throws RecognitionException {
        try {
            // InternalXcore.g:705:1: ( ruleXExpression EOF )
            // InternalXcore.g:706:1: ruleXExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXExpressionRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXExpression();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:717:2: ( ( ruleXAssignment ) )
            // InternalXcore.g:718:2: ( ruleXAssignment )
            {
            // InternalXcore.g:718:2: ( ruleXAssignment )
            // InternalXcore.g:719:3: ruleXAssignment
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); 
            }
            pushFollow(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:729:1: entryRuleXAssignment : ruleXAssignment EOF ;
    public final void entryRuleXAssignment() throws RecognitionException {
        try {
            // InternalXcore.g:730:1: ( ruleXAssignment EOF )
            // InternalXcore.g:731:1: ruleXAssignment EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXAssignment();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:742:2: ( ( ( rule__XAssignment__Alternatives ) ) )
            // InternalXcore.g:743:2: ( ( rule__XAssignment__Alternatives ) )
            {
            // InternalXcore.g:743:2: ( ( rule__XAssignment__Alternatives ) )
            // InternalXcore.g:744:3: ( rule__XAssignment__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getAlternatives()); 
            }
            // InternalXcore.g:745:3: ( rule__XAssignment__Alternatives )
            // InternalXcore.g:745:4: rule__XAssignment__Alternatives
            {
            pushFollow(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:754:1: entryRuleOpSingleAssign : ruleOpSingleAssign EOF ;
    public final void entryRuleOpSingleAssign() throws RecognitionException {
        try {
            // InternalXcore.g:755:1: ( ruleOpSingleAssign EOF )
            // InternalXcore.g:756:1: ruleOpSingleAssign EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpSingleAssignRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleOpSingleAssign();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:767:2: ( ( '=' ) )
            // InternalXcore.g:768:2: ( '=' )
            {
            // InternalXcore.g:768:2: ( '=' )
            // InternalXcore.g:769:3: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); 
            }
            match(input,13,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:779:1: entryRuleOpMultiAssign : ruleOpMultiAssign EOF ;
    public final void entryRuleOpMultiAssign() throws RecognitionException {
        try {
            // InternalXcore.g:780:1: ( ruleOpMultiAssign EOF )
            // InternalXcore.g:781:1: ruleOpMultiAssign EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpMultiAssignRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleOpMultiAssign();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:792:2: ( ( ( rule__OpMultiAssign__Alternatives ) ) )
            // InternalXcore.g:793:2: ( ( rule__OpMultiAssign__Alternatives ) )
            {
            // InternalXcore.g:793:2: ( ( rule__OpMultiAssign__Alternatives ) )
            // InternalXcore.g:794:3: ( rule__OpMultiAssign__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpMultiAssignAccess().getAlternatives()); 
            }
            // InternalXcore.g:795:3: ( rule__OpMultiAssign__Alternatives )
            // InternalXcore.g:795:4: rule__OpMultiAssign__Alternatives
            {
            pushFollow(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:804:1: entryRuleXOrExpression : ruleXOrExpression EOF ;
    public final void entryRuleXOrExpression() throws RecognitionException {
        try {
            // InternalXcore.g:805:1: ( ruleXOrExpression EOF )
            // InternalXcore.g:806:1: ruleXOrExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOrExpressionRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXOrExpression();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:817:2: ( ( ( rule__XOrExpression__Group__0 ) ) )
            // InternalXcore.g:818:2: ( ( rule__XOrExpression__Group__0 ) )
            {
            // InternalXcore.g:818:2: ( ( rule__XOrExpression__Group__0 ) )
            // InternalXcore.g:819:3: ( rule__XOrExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOrExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:820:3: ( rule__XOrExpression__Group__0 )
            // InternalXcore.g:820:4: rule__XOrExpression__Group__0
            {
            pushFollow(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:829:1: entryRuleOpOr : ruleOpOr EOF ;
    public final void entryRuleOpOr() throws RecognitionException {
        try {
            // InternalXcore.g:830:1: ( ruleOpOr EOF )
            // InternalXcore.g:831:1: ruleOpOr EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOrRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleOpOr();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:842:2: ( ( '||' ) )
            // InternalXcore.g:843:2: ( '||' )
            {
            // InternalXcore.g:843:2: ( '||' )
            // InternalXcore.g:844:3: '||'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); 
            }
            match(input,14,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:854:1: entryRuleXAndExpression : ruleXAndExpression EOF ;
    public final void entryRuleXAndExpression() throws RecognitionException {
        try {
            // InternalXcore.g:855:1: ( ruleXAndExpression EOF )
            // InternalXcore.g:856:1: ruleXAndExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAndExpressionRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXAndExpression();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:867:2: ( ( ( rule__XAndExpression__Group__0 ) ) )
            // InternalXcore.g:868:2: ( ( rule__XAndExpression__Group__0 ) )
            {
            // InternalXcore.g:868:2: ( ( rule__XAndExpression__Group__0 ) )
            // InternalXcore.g:869:3: ( rule__XAndExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAndExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:870:3: ( rule__XAndExpression__Group__0 )
            // InternalXcore.g:870:4: rule__XAndExpression__Group__0
            {
            pushFollow(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:879:1: entryRuleOpAnd : ruleOpAnd EOF ;
    public final void entryRuleOpAnd() throws RecognitionException {
        try {
            // InternalXcore.g:880:1: ( ruleOpAnd EOF )
            // InternalXcore.g:881:1: ruleOpAnd EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpAndRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleOpAnd();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:892:2: ( ( '&&' ) )
            // InternalXcore.g:893:2: ( '&&' )
            {
            // InternalXcore.g:893:2: ( '&&' )
            // InternalXcore.g:894:3: '&&'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); 
            }
            match(input,15,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:904:1: entryRuleXEqualityExpression : ruleXEqualityExpression EOF ;
    public final void entryRuleXEqualityExpression() throws RecognitionException {
        try {
            // InternalXcore.g:905:1: ( ruleXEqualityExpression EOF )
            // InternalXcore.g:906:1: ruleXEqualityExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXEqualityExpression();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:917:2: ( ( ( rule__XEqualityExpression__Group__0 ) ) )
            // InternalXcore.g:918:2: ( ( rule__XEqualityExpression__Group__0 ) )
            {
            // InternalXcore.g:918:2: ( ( rule__XEqualityExpression__Group__0 ) )
            // InternalXcore.g:919:3: ( rule__XEqualityExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:920:3: ( rule__XEqualityExpression__Group__0 )
            // InternalXcore.g:920:4: rule__XEqualityExpression__Group__0
            {
            pushFollow(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:929:1: entryRuleOpEquality : ruleOpEquality EOF ;
    public final void entryRuleOpEquality() throws RecognitionException {
        try {
            // InternalXcore.g:930:1: ( ruleOpEquality EOF )
            // InternalXcore.g:931:1: ruleOpEquality EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpEqualityRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleOpEquality();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:942:2: ( ( ( rule__OpEquality__Alternatives ) ) )
            // InternalXcore.g:943:2: ( ( rule__OpEquality__Alternatives ) )
            {
            // InternalXcore.g:943:2: ( ( rule__OpEquality__Alternatives ) )
            // InternalXcore.g:944:3: ( rule__OpEquality__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpEqualityAccess().getAlternatives()); 
            }
            // InternalXcore.g:945:3: ( rule__OpEquality__Alternatives )
            // InternalXcore.g:945:4: rule__OpEquality__Alternatives
            {
            pushFollow(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:954:1: entryRuleXRelationalExpression : ruleXRelationalExpression EOF ;
    public final void entryRuleXRelationalExpression() throws RecognitionException {
        try {
            // InternalXcore.g:955:1: ( ruleXRelationalExpression EOF )
            // InternalXcore.g:956:1: ruleXRelationalExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXRelationalExpression();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:967:2: ( ( ( rule__XRelationalExpression__Group__0 ) ) )
            // InternalXcore.g:968:2: ( ( rule__XRelationalExpression__Group__0 ) )
            {
            // InternalXcore.g:968:2: ( ( rule__XRelationalExpression__Group__0 ) )
            // InternalXcore.g:969:3: ( rule__XRelationalExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:970:3: ( rule__XRelationalExpression__Group__0 )
            // InternalXcore.g:970:4: rule__XRelationalExpression__Group__0
            {
            pushFollow(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:979:1: entryRuleOpCompare : ruleOpCompare EOF ;
    public final void entryRuleOpCompare() throws RecognitionException {
        try {
            // InternalXcore.g:980:1: ( ruleOpCompare EOF )
            // InternalXcore.g:981:1: ruleOpCompare EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpCompareRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleOpCompare();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:992:2: ( ( ( rule__OpCompare__Alternatives ) ) )
            // InternalXcore.g:993:2: ( ( rule__OpCompare__Alternatives ) )
            {
            // InternalXcore.g:993:2: ( ( rule__OpCompare__Alternatives ) )
            // InternalXcore.g:994:3: ( rule__OpCompare__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpCompareAccess().getAlternatives()); 
            }
            // InternalXcore.g:995:3: ( rule__OpCompare__Alternatives )
            // InternalXcore.g:995:4: rule__OpCompare__Alternatives
            {
            pushFollow(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:1004:1: entryRuleXOtherOperatorExpression : ruleXOtherOperatorExpression EOF ;
    public final void entryRuleXOtherOperatorExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1005:1: ( ruleXOtherOperatorExpression EOF )
            // InternalXcore.g:1006:1: ruleXOtherOperatorExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXOtherOperatorExpression();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1017:2: ( ( ( rule__XOtherOperatorExpression__Group__0 ) ) )
            // InternalXcore.g:1018:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
            {
            // InternalXcore.g:1018:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
            // InternalXcore.g:1019:3: ( rule__XOtherOperatorExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:1020:3: ( rule__XOtherOperatorExpression__Group__0 )
            // InternalXcore.g:1020:4: rule__XOtherOperatorExpression__Group__0
            {
            pushFollow(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:1029:1: entryRuleOpOther : ruleOpOther EOF ;
    public final void entryRuleOpOther() throws RecognitionException {
        try {
            // InternalXcore.g:1030:1: ( ruleOpOther EOF )
            // InternalXcore.g:1031:1: ruleOpOther EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleOpOther();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1042:2: ( ( ( rule__OpOther__Alternatives ) ) )
            // InternalXcore.g:1043:2: ( ( rule__OpOther__Alternatives ) )
            {
            // InternalXcore.g:1043:2: ( ( rule__OpOther__Alternatives ) )
            // InternalXcore.g:1044:3: ( rule__OpOther__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getAlternatives()); 
            }
            // InternalXcore.g:1045:3: ( rule__OpOther__Alternatives )
            // InternalXcore.g:1045:4: rule__OpOther__Alternatives
            {
            pushFollow(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:1054:1: entryRuleXAdditiveExpression : ruleXAdditiveExpression EOF ;
    public final void entryRuleXAdditiveExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1055:1: ( ruleXAdditiveExpression EOF )
            // InternalXcore.g:1056:1: ruleXAdditiveExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXAdditiveExpression();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1067:2: ( ( ( rule__XAdditiveExpression__Group__0 ) ) )
            // InternalXcore.g:1068:2: ( ( rule__XAdditiveExpression__Group__0 ) )
            {
            // InternalXcore.g:1068:2: ( ( rule__XAdditiveExpression__Group__0 ) )
            // InternalXcore.g:1069:3: ( rule__XAdditiveExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:1070:3: ( rule__XAdditiveExpression__Group__0 )
            // InternalXcore.g:1070:4: rule__XAdditiveExpression__Group__0
            {
            pushFollow(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:1079:1: entryRuleOpAdd : ruleOpAdd EOF ;
    public final void entryRuleOpAdd() throws RecognitionException {
        try {
            // InternalXcore.g:1080:1: ( ruleOpAdd EOF )
            // InternalXcore.g:1081:1: ruleOpAdd EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpAddRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleOpAdd();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1092:2: ( ( ( rule__OpAdd__Alternatives ) ) )
            // InternalXcore.g:1093:2: ( ( rule__OpAdd__Alternatives ) )
            {
            // InternalXcore.g:1093:2: ( ( rule__OpAdd__Alternatives ) )
            // InternalXcore.g:1094:3: ( rule__OpAdd__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpAddAccess().getAlternatives()); 
            }
            // InternalXcore.g:1095:3: ( rule__OpAdd__Alternatives )
            // InternalXcore.g:1095:4: rule__OpAdd__Alternatives
            {
            pushFollow(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:1104:1: entryRuleXMultiplicativeExpression : ruleXMultiplicativeExpression EOF ;
    public final void entryRuleXMultiplicativeExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1105:1: ( ruleXMultiplicativeExpression EOF )
            // InternalXcore.g:1106:1: ruleXMultiplicativeExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicativeExpressionRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXMultiplicativeExpression();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1117:2: ( ( ( rule__XMultiplicativeExpression__Group__0 ) ) )
            // InternalXcore.g:1118:2: ( ( rule__XMultiplicativeExpression__Group__0 ) )
            {
            // InternalXcore.g:1118:2: ( ( rule__XMultiplicativeExpression__Group__0 ) )
            // InternalXcore.g:1119:3: ( rule__XMultiplicativeExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:1120:3: ( rule__XMultiplicativeExpression__Group__0 )
            // InternalXcore.g:1120:4: rule__XMultiplicativeExpression__Group__0
            {
            pushFollow(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:1129:1: entryRuleOpMulti : ruleOpMulti EOF ;
    public final void entryRuleOpMulti() throws RecognitionException {
        try {
            // InternalXcore.g:1130:1: ( ruleOpMulti EOF )
            // InternalXcore.g:1131:1: ruleOpMulti EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpMultiRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleOpMulti();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1142:2: ( ( ( rule__OpMulti__Alternatives ) ) )
            // InternalXcore.g:1143:2: ( ( rule__OpMulti__Alternatives ) )
            {
            // InternalXcore.g:1143:2: ( ( rule__OpMulti__Alternatives ) )
            // InternalXcore.g:1144:3: ( rule__OpMulti__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpMultiAccess().getAlternatives()); 
            }
            // InternalXcore.g:1145:3: ( rule__OpMulti__Alternatives )
            // InternalXcore.g:1145:4: rule__OpMulti__Alternatives
            {
            pushFollow(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:1154:1: entryRuleXUnaryOperation : ruleXUnaryOperation EOF ;
    public final void entryRuleXUnaryOperation() throws RecognitionException {
        try {
            // InternalXcore.g:1155:1: ( ruleXUnaryOperation EOF )
            // InternalXcore.g:1156:1: ruleXUnaryOperation EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXUnaryOperationRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXUnaryOperation();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1167:2: ( ( ( rule__XUnaryOperation__Alternatives ) ) )
            // InternalXcore.g:1168:2: ( ( rule__XUnaryOperation__Alternatives ) )
            {
            // InternalXcore.g:1168:2: ( ( rule__XUnaryOperation__Alternatives ) )
            // InternalXcore.g:1169:3: ( rule__XUnaryOperation__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXUnaryOperationAccess().getAlternatives()); 
            }
            // InternalXcore.g:1170:3: ( rule__XUnaryOperation__Alternatives )
            // InternalXcore.g:1170:4: rule__XUnaryOperation__Alternatives
            {
            pushFollow(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:1179:1: entryRuleOpUnary : ruleOpUnary EOF ;
    public final void entryRuleOpUnary() throws RecognitionException {
        try {
            // InternalXcore.g:1180:1: ( ruleOpUnary EOF )
            // InternalXcore.g:1181:1: ruleOpUnary EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpUnaryRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleOpUnary();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1192:2: ( ( ( rule__OpUnary__Alternatives ) ) )
            // InternalXcore.g:1193:2: ( ( rule__OpUnary__Alternatives ) )
            {
            // InternalXcore.g:1193:2: ( ( rule__OpUnary__Alternatives ) )
            // InternalXcore.g:1194:3: ( rule__OpUnary__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpUnaryAccess().getAlternatives()); 
            }
            // InternalXcore.g:1195:3: ( rule__OpUnary__Alternatives )
            // InternalXcore.g:1195:4: rule__OpUnary__Alternatives
            {
            pushFollow(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:1204:1: entryRuleXCastedExpression : ruleXCastedExpression EOF ;
    public final void entryRuleXCastedExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1205:1: ( ruleXCastedExpression EOF )
            // InternalXcore.g:1206:1: ruleXCastedExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCastedExpressionRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXCastedExpression();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1217:2: ( ( ( rule__XCastedExpression__Group__0 ) ) )
            // InternalXcore.g:1218:2: ( ( rule__XCastedExpression__Group__0 ) )
            {
            // InternalXcore.g:1218:2: ( ( rule__XCastedExpression__Group__0 ) )
            // InternalXcore.g:1219:3: ( rule__XCastedExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCastedExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:1220:3: ( rule__XCastedExpression__Group__0 )
            // InternalXcore.g:1220:4: rule__XCastedExpression__Group__0
            {
            pushFollow(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:1229:1: entryRuleXPostfixOperation : ruleXPostfixOperation EOF ;
    public final void entryRuleXPostfixOperation() throws RecognitionException {
        try {
            // InternalXcore.g:1230:1: ( ruleXPostfixOperation EOF )
            // InternalXcore.g:1231:1: ruleXPostfixOperation EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPostfixOperationRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXPostfixOperation();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1242:2: ( ( ( rule__XPostfixOperation__Group__0 ) ) )
            // InternalXcore.g:1243:2: ( ( rule__XPostfixOperation__Group__0 ) )
            {
            // InternalXcore.g:1243:2: ( ( rule__XPostfixOperation__Group__0 ) )
            // InternalXcore.g:1244:3: ( rule__XPostfixOperation__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPostfixOperationAccess().getGroup()); 
            }
            // InternalXcore.g:1245:3: ( rule__XPostfixOperation__Group__0 )
            // InternalXcore.g:1245:4: rule__XPostfixOperation__Group__0
            {
            pushFollow(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:1254:1: entryRuleOpPostfix : ruleOpPostfix EOF ;
    public final void entryRuleOpPostfix() throws RecognitionException {
        try {
            // InternalXcore.g:1255:1: ( ruleOpPostfix EOF )
            // InternalXcore.g:1256:1: ruleOpPostfix EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpPostfixRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleOpPostfix();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1267:2: ( ( ( rule__OpPostfix__Alternatives ) ) )
            // InternalXcore.g:1268:2: ( ( rule__OpPostfix__Alternatives ) )
            {
            // InternalXcore.g:1268:2: ( ( rule__OpPostfix__Alternatives ) )
            // InternalXcore.g:1269:3: ( rule__OpPostfix__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpPostfixAccess().getAlternatives()); 
            }
            // InternalXcore.g:1270:3: ( rule__OpPostfix__Alternatives )
            // InternalXcore.g:1270:4: rule__OpPostfix__Alternatives
            {
            pushFollow(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:1279:1: entryRuleXMemberFeatureCall : ruleXMemberFeatureCall EOF ;
    public final void entryRuleXMemberFeatureCall() throws RecognitionException {
        try {
            // InternalXcore.g:1280:1: ( ruleXMemberFeatureCall EOF )
            // InternalXcore.g:1281:1: ruleXMemberFeatureCall EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXMemberFeatureCall();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1292:2: ( ( ( rule__XMemberFeatureCall__Group__0 ) ) )
            // InternalXcore.g:1293:2: ( ( rule__XMemberFeatureCall__Group__0 ) )
            {
            // InternalXcore.g:1293:2: ( ( rule__XMemberFeatureCall__Group__0 ) )
            // InternalXcore.g:1294:3: ( rule__XMemberFeatureCall__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getGroup()); 
            }
            // InternalXcore.g:1295:3: ( rule__XMemberFeatureCall__Group__0 )
            // InternalXcore.g:1295:4: rule__XMemberFeatureCall__Group__0
            {
            pushFollow(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:1304:1: entryRuleXPrimaryExpression : ruleXPrimaryExpression EOF ;
    public final void entryRuleXPrimaryExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1305:1: ( ruleXPrimaryExpression EOF )
            // InternalXcore.g:1306:1: ruleXPrimaryExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPrimaryExpressionRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXPrimaryExpression();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1317:2: ( ( ( rule__XPrimaryExpression__Alternatives ) ) )
            // InternalXcore.g:1318:2: ( ( rule__XPrimaryExpression__Alternatives ) )
            {
            // InternalXcore.g:1318:2: ( ( rule__XPrimaryExpression__Alternatives ) )
            // InternalXcore.g:1319:3: ( rule__XPrimaryExpression__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); 
            }
            // InternalXcore.g:1320:3: ( rule__XPrimaryExpression__Alternatives )
            // InternalXcore.g:1320:4: rule__XPrimaryExpression__Alternatives
            {
            pushFollow(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:1329:1: entryRuleXLiteral : ruleXLiteral EOF ;
    public final void entryRuleXLiteral() throws RecognitionException {
        try {
            // InternalXcore.g:1330:1: ( ruleXLiteral EOF )
            // InternalXcore.g:1331:1: ruleXLiteral EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXLiteralRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXLiteral();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1342:2: ( ( ( rule__XLiteral__Alternatives ) ) )
            // InternalXcore.g:1343:2: ( ( rule__XLiteral__Alternatives ) )
            {
            // InternalXcore.g:1343:2: ( ( rule__XLiteral__Alternatives ) )
            // InternalXcore.g:1344:3: ( rule__XLiteral__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXLiteralAccess().getAlternatives()); 
            }
            // InternalXcore.g:1345:3: ( rule__XLiteral__Alternatives )
            // InternalXcore.g:1345:4: rule__XLiteral__Alternatives
            {
            pushFollow(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:1354:1: entryRuleXCollectionLiteral : ruleXCollectionLiteral EOF ;
    public final void entryRuleXCollectionLiteral() throws RecognitionException {
        try {
            // InternalXcore.g:1355:1: ( ruleXCollectionLiteral EOF )
            // InternalXcore.g:1356:1: ruleXCollectionLiteral EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCollectionLiteralRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXCollectionLiteral();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1367:2: ( ( ( rule__XCollectionLiteral__Alternatives ) ) )
            // InternalXcore.g:1368:2: ( ( rule__XCollectionLiteral__Alternatives ) )
            {
            // InternalXcore.g:1368:2: ( ( rule__XCollectionLiteral__Alternatives ) )
            // InternalXcore.g:1369:3: ( rule__XCollectionLiteral__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); 
            }
            // InternalXcore.g:1370:3: ( rule__XCollectionLiteral__Alternatives )
            // InternalXcore.g:1370:4: rule__XCollectionLiteral__Alternatives
            {
            pushFollow(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:1379:1: entryRuleXSetLiteral : ruleXSetLiteral EOF ;
    public final void entryRuleXSetLiteral() throws RecognitionException {
        try {
            // InternalXcore.g:1380:1: ( ruleXSetLiteral EOF )
            // InternalXcore.g:1381:1: ruleXSetLiteral EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXSetLiteral();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1392:2: ( ( ( rule__XSetLiteral__Group__0 ) ) )
            // InternalXcore.g:1393:2: ( ( rule__XSetLiteral__Group__0 ) )
            {
            // InternalXcore.g:1393:2: ( ( rule__XSetLiteral__Group__0 ) )
            // InternalXcore.g:1394:3: ( rule__XSetLiteral__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralAccess().getGroup()); 
            }
            // InternalXcore.g:1395:3: ( rule__XSetLiteral__Group__0 )
            // InternalXcore.g:1395:4: rule__XSetLiteral__Group__0
            {
            pushFollow(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:1404:1: entryRuleXListLiteral : ruleXListLiteral EOF ;
    public final void entryRuleXListLiteral() throws RecognitionException {
        try {
            // InternalXcore.g:1405:1: ( ruleXListLiteral EOF )
            // InternalXcore.g:1406:1: ruleXListLiteral EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXListLiteral();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1417:2: ( ( ( rule__XListLiteral__Group__0 ) ) )
            // InternalXcore.g:1418:2: ( ( rule__XListLiteral__Group__0 ) )
            {
            // InternalXcore.g:1418:2: ( ( rule__XListLiteral__Group__0 ) )
            // InternalXcore.g:1419:3: ( rule__XListLiteral__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralAccess().getGroup()); 
            }
            // InternalXcore.g:1420:3: ( rule__XListLiteral__Group__0 )
            // InternalXcore.g:1420:4: rule__XListLiteral__Group__0
            {
            pushFollow(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:1429:1: entryRuleXClosure : ruleXClosure EOF ;
    public final void entryRuleXClosure() throws RecognitionException {
        try {
            // InternalXcore.g:1430:1: ( ruleXClosure EOF )
            // InternalXcore.g:1431:1: ruleXClosure EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXClosure();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1442:2: ( ( ( rule__XClosure__Group__0 ) ) )
            // InternalXcore.g:1443:2: ( ( rule__XClosure__Group__0 ) )
            {
            // InternalXcore.g:1443:2: ( ( rule__XClosure__Group__0 ) )
            // InternalXcore.g:1444:3: ( rule__XClosure__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getGroup()); 
            }
            // InternalXcore.g:1445:3: ( rule__XClosure__Group__0 )
            // InternalXcore.g:1445:4: rule__XClosure__Group__0
            {
            pushFollow(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:1454:1: entryRuleXExpressionInClosure : ruleXExpressionInClosure EOF ;
    public final void entryRuleXExpressionInClosure() throws RecognitionException {
        try {
            // InternalXcore.g:1455:1: ( ruleXExpressionInClosure EOF )
            // InternalXcore.g:1456:1: ruleXExpressionInClosure EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXExpressionInClosureRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXExpressionInClosure();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1467:2: ( ( ( rule__XExpressionInClosure__Group__0 ) ) )
            // InternalXcore.g:1468:2: ( ( rule__XExpressionInClosure__Group__0 ) )
            {
            // InternalXcore.g:1468:2: ( ( rule__XExpressionInClosure__Group__0 ) )
            // InternalXcore.g:1469:3: ( rule__XExpressionInClosure__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXExpressionInClosureAccess().getGroup()); 
            }
            // InternalXcore.g:1470:3: ( rule__XExpressionInClosure__Group__0 )
            // InternalXcore.g:1470:4: rule__XExpressionInClosure__Group__0
            {
            pushFollow(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:1479:1: entryRuleXShortClosure : ruleXShortClosure EOF ;
    public final void entryRuleXShortClosure() throws RecognitionException {
        try {
            // InternalXcore.g:1480:1: ( ruleXShortClosure EOF )
            // InternalXcore.g:1481:1: ruleXShortClosure EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXShortClosure();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1492:2: ( ( ( rule__XShortClosure__Group__0 ) ) )
            // InternalXcore.g:1493:2: ( ( rule__XShortClosure__Group__0 ) )
            {
            // InternalXcore.g:1493:2: ( ( rule__XShortClosure__Group__0 ) )
            // InternalXcore.g:1494:3: ( rule__XShortClosure__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getGroup()); 
            }
            // InternalXcore.g:1495:3: ( rule__XShortClosure__Group__0 )
            // InternalXcore.g:1495:4: rule__XShortClosure__Group__0
            {
            pushFollow(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:1504:1: entryRuleXParenthesizedExpression : ruleXParenthesizedExpression EOF ;
    public final void entryRuleXParenthesizedExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1505:1: ( ruleXParenthesizedExpression EOF )
            // InternalXcore.g:1506:1: ruleXParenthesizedExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParenthesizedExpressionRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXParenthesizedExpression();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1517:2: ( ( ( rule__XParenthesizedExpression__Group__0 ) ) )
            // InternalXcore.g:1518:2: ( ( rule__XParenthesizedExpression__Group__0 ) )
            {
            // InternalXcore.g:1518:2: ( ( rule__XParenthesizedExpression__Group__0 ) )
            // InternalXcore.g:1519:3: ( rule__XParenthesizedExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:1520:3: ( rule__XParenthesizedExpression__Group__0 )
            // InternalXcore.g:1520:4: rule__XParenthesizedExpression__Group__0
            {
            pushFollow(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:1529:1: entryRuleXIfExpression : ruleXIfExpression EOF ;
    public final void entryRuleXIfExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1530:1: ( ruleXIfExpression EOF )
            // InternalXcore.g:1531:1: ruleXIfExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXIfExpression();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1542:2: ( ( ( rule__XIfExpression__Group__0 ) ) )
            // InternalXcore.g:1543:2: ( ( rule__XIfExpression__Group__0 ) )
            {
            // InternalXcore.g:1543:2: ( ( rule__XIfExpression__Group__0 ) )
            // InternalXcore.g:1544:3: ( rule__XIfExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:1545:3: ( rule__XIfExpression__Group__0 )
            // InternalXcore.g:1545:4: rule__XIfExpression__Group__0
            {
            pushFollow(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:1554:1: entryRuleXSwitchExpression : ruleXSwitchExpression EOF ;
    public final void entryRuleXSwitchExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1555:1: ( ruleXSwitchExpression EOF )
            // InternalXcore.g:1556:1: ruleXSwitchExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXSwitchExpression();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1567:2: ( ( ( rule__XSwitchExpression__Group__0 ) ) )
            // InternalXcore.g:1568:2: ( ( rule__XSwitchExpression__Group__0 ) )
            {
            // InternalXcore.g:1568:2: ( ( rule__XSwitchExpression__Group__0 ) )
            // InternalXcore.g:1569:3: ( rule__XSwitchExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:1570:3: ( rule__XSwitchExpression__Group__0 )
            // InternalXcore.g:1570:4: rule__XSwitchExpression__Group__0
            {
            pushFollow(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:1579:1: entryRuleXCasePart : ruleXCasePart EOF ;
    public final void entryRuleXCasePart() throws RecognitionException {
        try {
            // InternalXcore.g:1580:1: ( ruleXCasePart EOF )
            // InternalXcore.g:1581:1: ruleXCasePart EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXCasePart();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1592:2: ( ( ( rule__XCasePart__Group__0 ) ) )
            // InternalXcore.g:1593:2: ( ( rule__XCasePart__Group__0 ) )
            {
            // InternalXcore.g:1593:2: ( ( rule__XCasePart__Group__0 ) )
            // InternalXcore.g:1594:3: ( rule__XCasePart__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getGroup()); 
            }
            // InternalXcore.g:1595:3: ( rule__XCasePart__Group__0 )
            // InternalXcore.g:1595:4: rule__XCasePart__Group__0
            {
            pushFollow(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:1604:1: entryRuleXForLoopExpression : ruleXForLoopExpression EOF ;
    public final void entryRuleXForLoopExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1605:1: ( ruleXForLoopExpression EOF )
            // InternalXcore.g:1606:1: ruleXForLoopExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXForLoopExpression();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1617:2: ( ( ( rule__XForLoopExpression__Group__0 ) ) )
            // InternalXcore.g:1618:2: ( ( rule__XForLoopExpression__Group__0 ) )
            {
            // InternalXcore.g:1618:2: ( ( rule__XForLoopExpression__Group__0 ) )
            // InternalXcore.g:1619:3: ( rule__XForLoopExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:1620:3: ( rule__XForLoopExpression__Group__0 )
            // InternalXcore.g:1620:4: rule__XForLoopExpression__Group__0
            {
            pushFollow(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:1629:1: entryRuleXBasicForLoopExpression : ruleXBasicForLoopExpression EOF ;
    public final void entryRuleXBasicForLoopExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1630:1: ( ruleXBasicForLoopExpression EOF )
            // InternalXcore.g:1631:1: ruleXBasicForLoopExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXBasicForLoopExpression();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1642:2: ( ( ( rule__XBasicForLoopExpression__Group__0 ) ) )
            // InternalXcore.g:1643:2: ( ( rule__XBasicForLoopExpression__Group__0 ) )
            {
            // InternalXcore.g:1643:2: ( ( rule__XBasicForLoopExpression__Group__0 ) )
            // InternalXcore.g:1644:3: ( rule__XBasicForLoopExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:1645:3: ( rule__XBasicForLoopExpression__Group__0 )
            // InternalXcore.g:1645:4: rule__XBasicForLoopExpression__Group__0
            {
            pushFollow(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:1654:1: entryRuleXWhileExpression : ruleXWhileExpression EOF ;
    public final void entryRuleXWhileExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1655:1: ( ruleXWhileExpression EOF )
            // InternalXcore.g:1656:1: ruleXWhileExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXWhileExpressionRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXWhileExpression();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1667:2: ( ( ( rule__XWhileExpression__Group__0 ) ) )
            // InternalXcore.g:1668:2: ( ( rule__XWhileExpression__Group__0 ) )
            {
            // InternalXcore.g:1668:2: ( ( rule__XWhileExpression__Group__0 ) )
            // InternalXcore.g:1669:3: ( rule__XWhileExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXWhileExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:1670:3: ( rule__XWhileExpression__Group__0 )
            // InternalXcore.g:1670:4: rule__XWhileExpression__Group__0
            {
            pushFollow(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:1679:1: entryRuleXDoWhileExpression : ruleXDoWhileExpression EOF ;
    public final void entryRuleXDoWhileExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1680:1: ( ruleXDoWhileExpression EOF )
            // InternalXcore.g:1681:1: ruleXDoWhileExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDoWhileExpressionRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXDoWhileExpression();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1692:2: ( ( ( rule__XDoWhileExpression__Group__0 ) ) )
            // InternalXcore.g:1693:2: ( ( rule__XDoWhileExpression__Group__0 ) )
            {
            // InternalXcore.g:1693:2: ( ( rule__XDoWhileExpression__Group__0 ) )
            // InternalXcore.g:1694:3: ( rule__XDoWhileExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDoWhileExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:1695:3: ( rule__XDoWhileExpression__Group__0 )
            // InternalXcore.g:1695:4: rule__XDoWhileExpression__Group__0
            {
            pushFollow(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:1704:1: entryRuleXExpressionOrVarDeclaration : ruleXExpressionOrVarDeclaration EOF ;
    public final void entryRuleXExpressionOrVarDeclaration() throws RecognitionException {
        try {
            // InternalXcore.g:1705:1: ( ruleXExpressionOrVarDeclaration EOF )
            // InternalXcore.g:1706:1: ruleXExpressionOrVarDeclaration EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXExpressionOrVarDeclarationRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXExpressionOrVarDeclaration();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1717:2: ( ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) )
            // InternalXcore.g:1718:2: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
            {
            // InternalXcore.g:1718:2: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
            // InternalXcore.g:1719:3: ( rule__XExpressionOrVarDeclaration__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives()); 
            }
            // InternalXcore.g:1720:3: ( rule__XExpressionOrVarDeclaration__Alternatives )
            // InternalXcore.g:1720:4: rule__XExpressionOrVarDeclaration__Alternatives
            {
            pushFollow(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:1729:1: entryRuleXVariableDeclaration : ruleXVariableDeclaration EOF ;
    public final void entryRuleXVariableDeclaration() throws RecognitionException {
        try {
            // InternalXcore.g:1730:1: ( ruleXVariableDeclaration EOF )
            // InternalXcore.g:1731:1: ruleXVariableDeclaration EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXVariableDeclaration();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1742:2: ( ( ( rule__XVariableDeclaration__Group__0 ) ) )
            // InternalXcore.g:1743:2: ( ( rule__XVariableDeclaration__Group__0 ) )
            {
            // InternalXcore.g:1743:2: ( ( rule__XVariableDeclaration__Group__0 ) )
            // InternalXcore.g:1744:3: ( rule__XVariableDeclaration__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getGroup()); 
            }
            // InternalXcore.g:1745:3: ( rule__XVariableDeclaration__Group__0 )
            // InternalXcore.g:1745:4: rule__XVariableDeclaration__Group__0
            {
            pushFollow(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:1754:1: entryRuleJvmFormalParameter : ruleJvmFormalParameter EOF ;
    public final void entryRuleJvmFormalParameter() throws RecognitionException {
        try {
            // InternalXcore.g:1755:1: ( ruleJvmFormalParameter EOF )
            // InternalXcore.g:1756:1: ruleJvmFormalParameter EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmFormalParameterRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleJvmFormalParameter();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1767:2: ( ( ( rule__JvmFormalParameter__Group__0 ) ) )
            // InternalXcore.g:1768:2: ( ( rule__JvmFormalParameter__Group__0 ) )
            {
            // InternalXcore.g:1768:2: ( ( rule__JvmFormalParameter__Group__0 ) )
            // InternalXcore.g:1769:3: ( rule__JvmFormalParameter__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmFormalParameterAccess().getGroup()); 
            }
            // InternalXcore.g:1770:3: ( rule__JvmFormalParameter__Group__0 )
            // InternalXcore.g:1770:4: rule__JvmFormalParameter__Group__0
            {
            pushFollow(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:1779:1: entryRuleFullJvmFormalParameter : ruleFullJvmFormalParameter EOF ;
    public final void entryRuleFullJvmFormalParameter() throws RecognitionException {
        try {
            // InternalXcore.g:1780:1: ( ruleFullJvmFormalParameter EOF )
            // InternalXcore.g:1781:1: ruleFullJvmFormalParameter EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFullJvmFormalParameterRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleFullJvmFormalParameter();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1792:2: ( ( ( rule__FullJvmFormalParameter__Group__0 ) ) )
            // InternalXcore.g:1793:2: ( ( rule__FullJvmFormalParameter__Group__0 ) )
            {
            // InternalXcore.g:1793:2: ( ( rule__FullJvmFormalParameter__Group__0 ) )
            // InternalXcore.g:1794:3: ( rule__FullJvmFormalParameter__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); 
            }
            // InternalXcore.g:1795:3: ( rule__FullJvmFormalParameter__Group__0 )
            // InternalXcore.g:1795:4: rule__FullJvmFormalParameter__Group__0
            {
            pushFollow(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:1804:1: entryRuleXFeatureCall : ruleXFeatureCall EOF ;
    public final void entryRuleXFeatureCall() throws RecognitionException {
        try {
            // InternalXcore.g:1805:1: ( ruleXFeatureCall EOF )
            // InternalXcore.g:1806:1: ruleXFeatureCall EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXFeatureCall();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1817:2: ( ( ( rule__XFeatureCall__Group__0 ) ) )
            // InternalXcore.g:1818:2: ( ( rule__XFeatureCall__Group__0 ) )
            {
            // InternalXcore.g:1818:2: ( ( rule__XFeatureCall__Group__0 ) )
            // InternalXcore.g:1819:3: ( rule__XFeatureCall__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getGroup()); 
            }
            // InternalXcore.g:1820:3: ( rule__XFeatureCall__Group__0 )
            // InternalXcore.g:1820:4: rule__XFeatureCall__Group__0
            {
            pushFollow(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:1829:1: entryRuleIdOrSuper : ruleIdOrSuper EOF ;
    public final void entryRuleIdOrSuper() throws RecognitionException {
        try {
            // InternalXcore.g:1830:1: ( ruleIdOrSuper EOF )
            // InternalXcore.g:1831:1: ruleIdOrSuper EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getIdOrSuperRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleIdOrSuper();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1842:2: ( ( ( rule__IdOrSuper__Alternatives ) ) )
            // InternalXcore.g:1843:2: ( ( rule__IdOrSuper__Alternatives ) )
            {
            // InternalXcore.g:1843:2: ( ( rule__IdOrSuper__Alternatives ) )
            // InternalXcore.g:1844:3: ( rule__IdOrSuper__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getIdOrSuperAccess().getAlternatives()); 
            }
            // InternalXcore.g:1845:3: ( rule__IdOrSuper__Alternatives )
            // InternalXcore.g:1845:4: rule__IdOrSuper__Alternatives
            {
            pushFollow(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:1854:1: entryRuleXConstructorCall : ruleXConstructorCall EOF ;
    public final void entryRuleXConstructorCall() throws RecognitionException {
        try {
            // InternalXcore.g:1855:1: ( ruleXConstructorCall EOF )
            // InternalXcore.g:1856:1: ruleXConstructorCall EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXConstructorCall();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1867:2: ( ( ( rule__XConstructorCall__Group__0 ) ) )
            // InternalXcore.g:1868:2: ( ( rule__XConstructorCall__Group__0 ) )
            {
            // InternalXcore.g:1868:2: ( ( rule__XConstructorCall__Group__0 ) )
            // InternalXcore.g:1869:3: ( rule__XConstructorCall__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getGroup()); 
            }
            // InternalXcore.g:1870:3: ( rule__XConstructorCall__Group__0 )
            // InternalXcore.g:1870:4: rule__XConstructorCall__Group__0
            {
            pushFollow(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:1879:1: entryRuleXBooleanLiteral : ruleXBooleanLiteral EOF ;
    public final void entryRuleXBooleanLiteral() throws RecognitionException {
        try {
            // InternalXcore.g:1880:1: ( ruleXBooleanLiteral EOF )
            // InternalXcore.g:1881:1: ruleXBooleanLiteral EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBooleanLiteralRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXBooleanLiteral();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1892:2: ( ( ( rule__XBooleanLiteral__Group__0 ) ) )
            // InternalXcore.g:1893:2: ( ( rule__XBooleanLiteral__Group__0 ) )
            {
            // InternalXcore.g:1893:2: ( ( rule__XBooleanLiteral__Group__0 ) )
            // InternalXcore.g:1894:3: ( rule__XBooleanLiteral__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBooleanLiteralAccess().getGroup()); 
            }
            // InternalXcore.g:1895:3: ( rule__XBooleanLiteral__Group__0 )
            // InternalXcore.g:1895:4: rule__XBooleanLiteral__Group__0
            {
            pushFollow(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:1904:1: entryRuleXNullLiteral : ruleXNullLiteral EOF ;
    public final void entryRuleXNullLiteral() throws RecognitionException {
        try {
            // InternalXcore.g:1905:1: ( ruleXNullLiteral EOF )
            // InternalXcore.g:1906:1: ruleXNullLiteral EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXNullLiteralRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXNullLiteral();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1917:2: ( ( ( rule__XNullLiteral__Group__0 ) ) )
            // InternalXcore.g:1918:2: ( ( rule__XNullLiteral__Group__0 ) )
            {
            // InternalXcore.g:1918:2: ( ( rule__XNullLiteral__Group__0 ) )
            // InternalXcore.g:1919:3: ( rule__XNullLiteral__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXNullLiteralAccess().getGroup()); 
            }
            // InternalXcore.g:1920:3: ( rule__XNullLiteral__Group__0 )
            // InternalXcore.g:1920:4: rule__XNullLiteral__Group__0
            {
            pushFollow(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:1929:1: entryRuleXNumberLiteral : ruleXNumberLiteral EOF ;
    public final void entryRuleXNumberLiteral() throws RecognitionException {
        try {
            // InternalXcore.g:1930:1: ( ruleXNumberLiteral EOF )
            // InternalXcore.g:1931:1: ruleXNumberLiteral EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXNumberLiteralRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXNumberLiteral();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1942:2: ( ( ( rule__XNumberLiteral__Group__0 ) ) )
            // InternalXcore.g:1943:2: ( ( rule__XNumberLiteral__Group__0 ) )
            {
            // InternalXcore.g:1943:2: ( ( rule__XNumberLiteral__Group__0 ) )
            // InternalXcore.g:1944:3: ( rule__XNumberLiteral__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXNumberLiteralAccess().getGroup()); 
            }
            // InternalXcore.g:1945:3: ( rule__XNumberLiteral__Group__0 )
            // InternalXcore.g:1945:4: rule__XNumberLiteral__Group__0
            {
            pushFollow(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:1954:1: entryRuleXStringLiteral : ruleXStringLiteral EOF ;
    public final void entryRuleXStringLiteral() throws RecognitionException {
        try {
            // InternalXcore.g:1955:1: ( ruleXStringLiteral EOF )
            // InternalXcore.g:1956:1: ruleXStringLiteral EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXStringLiteralRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXStringLiteral();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1967:2: ( ( ( rule__XStringLiteral__Group__0 ) ) )
            // InternalXcore.g:1968:2: ( ( rule__XStringLiteral__Group__0 ) )
            {
            // InternalXcore.g:1968:2: ( ( rule__XStringLiteral__Group__0 ) )
            // InternalXcore.g:1969:3: ( rule__XStringLiteral__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXStringLiteralAccess().getGroup()); 
            }
            // InternalXcore.g:1970:3: ( rule__XStringLiteral__Group__0 )
            // InternalXcore.g:1970:4: rule__XStringLiteral__Group__0
            {
            pushFollow(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:1979:1: entryRuleXTypeLiteral : ruleXTypeLiteral EOF ;
    public final void entryRuleXTypeLiteral() throws RecognitionException {
        try {
            // InternalXcore.g:1980:1: ( ruleXTypeLiteral EOF )
            // InternalXcore.g:1981:1: ruleXTypeLiteral EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeLiteralRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXTypeLiteral();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:1992:2: ( ( ( rule__XTypeLiteral__Group__0 ) ) )
            // InternalXcore.g:1993:2: ( ( rule__XTypeLiteral__Group__0 ) )
            {
            // InternalXcore.g:1993:2: ( ( rule__XTypeLiteral__Group__0 ) )
            // InternalXcore.g:1994:3: ( rule__XTypeLiteral__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeLiteralAccess().getGroup()); 
            }
            // InternalXcore.g:1995:3: ( rule__XTypeLiteral__Group__0 )
            // InternalXcore.g:1995:4: rule__XTypeLiteral__Group__0
            {
            pushFollow(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:2004:1: entryRuleXThrowExpression : ruleXThrowExpression EOF ;
    public final void entryRuleXThrowExpression() throws RecognitionException {
        try {
            // InternalXcore.g:2005:1: ( ruleXThrowExpression EOF )
            // InternalXcore.g:2006:1: ruleXThrowExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXThrowExpressionRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXThrowExpression();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2017:2: ( ( ( rule__XThrowExpression__Group__0 ) ) )
            // InternalXcore.g:2018:2: ( ( rule__XThrowExpression__Group__0 ) )
            {
            // InternalXcore.g:2018:2: ( ( rule__XThrowExpression__Group__0 ) )
            // InternalXcore.g:2019:3: ( rule__XThrowExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXThrowExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:2020:3: ( rule__XThrowExpression__Group__0 )
            // InternalXcore.g:2020:4: rule__XThrowExpression__Group__0
            {
            pushFollow(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:2029:1: entryRuleXReturnExpression : ruleXReturnExpression EOF ;
    public final void entryRuleXReturnExpression() throws RecognitionException {
        try {
            // InternalXcore.g:2030:1: ( ruleXReturnExpression EOF )
            // InternalXcore.g:2031:1: ruleXReturnExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReturnExpressionRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXReturnExpression();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2042:2: ( ( ( rule__XReturnExpression__Group__0 ) ) )
            // InternalXcore.g:2043:2: ( ( rule__XReturnExpression__Group__0 ) )
            {
            // InternalXcore.g:2043:2: ( ( rule__XReturnExpression__Group__0 ) )
            // InternalXcore.g:2044:3: ( rule__XReturnExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReturnExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:2045:3: ( rule__XReturnExpression__Group__0 )
            // InternalXcore.g:2045:4: rule__XReturnExpression__Group__0
            {
            pushFollow(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:2054:1: entryRuleXTryCatchFinallyExpression : ruleXTryCatchFinallyExpression EOF ;
    public final void entryRuleXTryCatchFinallyExpression() throws RecognitionException {
        try {
            // InternalXcore.g:2055:1: ( ruleXTryCatchFinallyExpression EOF )
            // InternalXcore.g:2056:1: ruleXTryCatchFinallyExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXTryCatchFinallyExpression();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2067:2: ( ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) )
            // InternalXcore.g:2068:2: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
            {
            // InternalXcore.g:2068:2: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
            // InternalXcore.g:2069:3: ( rule__XTryCatchFinallyExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:2070:3: ( rule__XTryCatchFinallyExpression__Group__0 )
            // InternalXcore.g:2070:4: rule__XTryCatchFinallyExpression__Group__0
            {
            pushFollow(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:2079:1: entryRuleXSynchronizedExpression : ruleXSynchronizedExpression EOF ;
    public final void entryRuleXSynchronizedExpression() throws RecognitionException {
        try {
            // InternalXcore.g:2080:1: ( ruleXSynchronizedExpression EOF )
            // InternalXcore.g:2081:1: ruleXSynchronizedExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXSynchronizedExpression();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2092:2: ( ( ( rule__XSynchronizedExpression__Group__0 ) ) )
            // InternalXcore.g:2093:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
            {
            // InternalXcore.g:2093:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
            // InternalXcore.g:2094:3: ( rule__XSynchronizedExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:2095:3: ( rule__XSynchronizedExpression__Group__0 )
            // InternalXcore.g:2095:4: rule__XSynchronizedExpression__Group__0
            {
            pushFollow(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:2104:1: entryRuleXCatchClause : ruleXCatchClause EOF ;
    public final void entryRuleXCatchClause() throws RecognitionException {
        try {
            // InternalXcore.g:2105:1: ( ruleXCatchClause EOF )
            // InternalXcore.g:2106:1: ruleXCatchClause EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCatchClauseRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXCatchClause();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2117:2: ( ( ( rule__XCatchClause__Group__0 ) ) )
            // InternalXcore.g:2118:2: ( ( rule__XCatchClause__Group__0 ) )
            {
            // InternalXcore.g:2118:2: ( ( rule__XCatchClause__Group__0 ) )
            // InternalXcore.g:2119:3: ( rule__XCatchClause__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCatchClauseAccess().getGroup()); 
            }
            // InternalXcore.g:2120:3: ( rule__XCatchClause__Group__0 )
            // InternalXcore.g:2120:4: rule__XCatchClause__Group__0
            {
            pushFollow(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:2129:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
    public final void entryRuleQualifiedName() throws RecognitionException {
        try {
            // InternalXcore.g:2130:1: ( ruleQualifiedName EOF )
            // InternalXcore.g:2131:1: ruleQualifiedName EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleQualifiedName();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2142:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
            // InternalXcore.g:2143:2: ( ( rule__QualifiedName__Group__0 ) )
            {
            // InternalXcore.g:2143:2: ( ( rule__QualifiedName__Group__0 ) )
            // InternalXcore.g:2144:3: ( rule__QualifiedName__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameAccess().getGroup()); 
            }
            // InternalXcore.g:2145:3: ( rule__QualifiedName__Group__0 )
            // InternalXcore.g:2145:4: rule__QualifiedName__Group__0
            {
            pushFollow(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:2154:1: entryRuleNumber : ruleNumber EOF ;
    public final void entryRuleNumber() throws RecognitionException {
         
        	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();

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

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getNumberRule()); 
            }
            match(input,EOF,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:2169:1: ruleNumber : ( ( rule__Number__Alternatives ) ) ;
    public final void ruleNumber() throws RecognitionException {

        		HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2174:2: ( ( ( rule__Number__Alternatives ) ) )
            // InternalXcore.g:2175:2: ( ( rule__Number__Alternatives ) )
            {
            // InternalXcore.g:2175:2: ( ( rule__Number__Alternatives ) )
            // InternalXcore.g:2176:3: ( rule__Number__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNumberAccess().getAlternatives()); 
            }
            // InternalXcore.g:2177:3: ( rule__Number__Alternatives )
            // InternalXcore.g:2177:4: rule__Number__Alternatives
            {
            pushFollow(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:2187:1: entryRuleJvmTypeReference : ruleJvmTypeReference EOF ;
    public final void entryRuleJvmTypeReference() throws RecognitionException {
        try {
            // InternalXcore.g:2188:1: ( ruleJvmTypeReference EOF )
            // InternalXcore.g:2189:1: ruleJvmTypeReference EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmTypeReferenceRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleJvmTypeReference();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2200:2: ( ( ( rule__JvmTypeReference__Alternatives ) ) )
            // InternalXcore.g:2201:2: ( ( rule__JvmTypeReference__Alternatives ) )
            {
            // InternalXcore.g:2201:2: ( ( rule__JvmTypeReference__Alternatives ) )
            // InternalXcore.g:2202:3: ( rule__JvmTypeReference__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); 
            }
            // InternalXcore.g:2203:3: ( rule__JvmTypeReference__Alternatives )
            // InternalXcore.g:2203:4: rule__JvmTypeReference__Alternatives
            {
            pushFollow(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:2212:1: entryRuleArrayBrackets : ruleArrayBrackets EOF ;
    public final void entryRuleArrayBrackets() throws RecognitionException {
        try {
            // InternalXcore.g:2213:1: ( ruleArrayBrackets EOF )
            // InternalXcore.g:2214:1: ruleArrayBrackets EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArrayBracketsRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleArrayBrackets();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2225:2: ( ( ( rule__ArrayBrackets__Group__0 ) ) )
            // InternalXcore.g:2226:2: ( ( rule__ArrayBrackets__Group__0 ) )
            {
            // InternalXcore.g:2226:2: ( ( rule__ArrayBrackets__Group__0 ) )
            // InternalXcore.g:2227:3: ( rule__ArrayBrackets__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArrayBracketsAccess().getGroup()); 
            }
            // InternalXcore.g:2228:3: ( rule__ArrayBrackets__Group__0 )
            // InternalXcore.g:2228:4: rule__ArrayBrackets__Group__0
            {
            pushFollow(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:2237:1: entryRuleXFunctionTypeRef : ruleXFunctionTypeRef EOF ;
    public final void entryRuleXFunctionTypeRef() throws RecognitionException {
        try {
            // InternalXcore.g:2238:1: ( ruleXFunctionTypeRef EOF )
            // InternalXcore.g:2239:1: ruleXFunctionTypeRef EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXFunctionTypeRef();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2250:2: ( ( ( rule__XFunctionTypeRef__Group__0 ) ) )
            // InternalXcore.g:2251:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
            {
            // InternalXcore.g:2251:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
            // InternalXcore.g:2252:3: ( rule__XFunctionTypeRef__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getGroup()); 
            }
            // InternalXcore.g:2253:3: ( rule__XFunctionTypeRef__Group__0 )
            // InternalXcore.g:2253:4: rule__XFunctionTypeRef__Group__0
            {
            pushFollow(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:2262:1: entryRuleJvmParameterizedTypeReference : ruleJvmParameterizedTypeReference EOF ;
    public final void entryRuleJvmParameterizedTypeReference() throws RecognitionException {
        try {
            // InternalXcore.g:2263:1: ( ruleJvmParameterizedTypeReference EOF )
            // InternalXcore.g:2264:1: ruleJvmParameterizedTypeReference EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleJvmParameterizedTypeReference();

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

            }

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


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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2275:2: ( ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) )
            // InternalXcore.g:2276:2: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
            {
            // InternalXcore.g:2276:2: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
            // InternalXcore.g:2277:3: ( rule__JvmParameterizedTypeReference__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); 
            }
            // InternalXcore.g:2278:3: ( rule__JvmParameterizedTypeReference__Group__0 )
            // InternalXcore.g:2278:4: rule__JvmParameterizedTypeReference__Group__0
            {
            pushFollow(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:2287:1: entryRuleJvmArgumentTypeReference : ruleJvmArgumentTypeReference EOF ;
    public final void entryRuleJvmArgumentTypeReference() throws RecognitionException {
        try {
            // InternalXcore.g:2288:1: ( ruleJvmArgumentTypeReference EOF )
            // InternalXcore.g:2289:1: ruleJvmArgumentTypeReference EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmArgumentTypeReferenceRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleJvmArgumentTypeReference();

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

            }

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


    // $ANTLR start "ruleJvmArgumentTypeReference"
    // InternalXcore.g:2296:1: ruleJvmArgumentTypeReference : ( ( rule__JvmArgumentTypeReference__Alternatives ) ) ;
    public final void ruleJvmArgumentTypeReference() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2300:2: ( ( ( rule__JvmArgumentTypeReference__Alternatives ) ) )
            // InternalXcore.g:2301:2: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
            {
            // InternalXcore.g:2301:2: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
            // InternalXcore.g:2302:3: ( rule__JvmArgumentTypeReference__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); 
            }
            // InternalXcore.g:2303:3: ( rule__JvmArgumentTypeReference__Alternatives )
            // InternalXcore.g:2303:4: rule__JvmArgumentTypeReference__Alternatives
            {
            pushFollow(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:2312:1: entryRuleJvmWildcardTypeReference : ruleJvmWildcardTypeReference EOF ;
    public final void entryRuleJvmWildcardTypeReference() throws RecognitionException {
        try {
            // InternalXcore.g:2313:1: ( ruleJvmWildcardTypeReference EOF )
            // InternalXcore.g:2314:1: ruleJvmWildcardTypeReference EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleJvmWildcardTypeReference();

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

            }

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


    // $ANTLR start "ruleJvmWildcardTypeReference"
    // InternalXcore.g:2321:1: ruleJvmWildcardTypeReference : ( ( rule__JvmWildcardTypeReference__Group__0 ) ) ;
    public final void ruleJvmWildcardTypeReference() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2325:2: ( ( ( rule__JvmWildcardTypeReference__Group__0 ) ) )
            // InternalXcore.g:2326:2: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
            {
            // InternalXcore.g:2326:2: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
            // InternalXcore.g:2327:3: ( rule__JvmWildcardTypeReference__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); 
            }
            // InternalXcore.g:2328:3: ( rule__JvmWildcardTypeReference__Group__0 )
            // InternalXcore.g:2328:4: rule__JvmWildcardTypeReference__Group__0
            {
            pushFollow(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:2337:1: entryRuleJvmUpperBound : ruleJvmUpperBound EOF ;
    public final void entryRuleJvmUpperBound() throws RecognitionException {
        try {
            // InternalXcore.g:2338:1: ( ruleJvmUpperBound EOF )
            // InternalXcore.g:2339:1: ruleJvmUpperBound EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmUpperBoundRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleJvmUpperBound();

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

            }

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


    // $ANTLR start "ruleJvmUpperBound"
    // InternalXcore.g:2346:1: ruleJvmUpperBound : ( ( rule__JvmUpperBound__Group__0 ) ) ;
    public final void ruleJvmUpperBound() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2350:2: ( ( ( rule__JvmUpperBound__Group__0 ) ) )
            // InternalXcore.g:2351:2: ( ( rule__JvmUpperBound__Group__0 ) )
            {
            // InternalXcore.g:2351:2: ( ( rule__JvmUpperBound__Group__0 ) )
            // InternalXcore.g:2352:3: ( rule__JvmUpperBound__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmUpperBoundAccess().getGroup()); 
            }
            // InternalXcore.g:2353:3: ( rule__JvmUpperBound__Group__0 )
            // InternalXcore.g:2353:4: rule__JvmUpperBound__Group__0
            {
            pushFollow(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:2362:1: entryRuleJvmUpperBoundAnded : ruleJvmUpperBoundAnded EOF ;
    public final void entryRuleJvmUpperBoundAnded() throws RecognitionException {
        try {
            // InternalXcore.g:2363:1: ( ruleJvmUpperBoundAnded EOF )
            // InternalXcore.g:2364:1: ruleJvmUpperBoundAnded EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmUpperBoundAndedRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleJvmUpperBoundAnded();

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

            }

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


    // $ANTLR start "ruleJvmUpperBoundAnded"
    // InternalXcore.g:2371:1: ruleJvmUpperBoundAnded : ( ( rule__JvmUpperBoundAnded__Group__0 ) ) ;
    public final void ruleJvmUpperBoundAnded() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2375:2: ( ( ( rule__JvmUpperBoundAnded__Group__0 ) ) )
            // InternalXcore.g:2376:2: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
            {
            // InternalXcore.g:2376:2: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
            // InternalXcore.g:2377:3: ( rule__JvmUpperBoundAnded__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); 
            }
            // InternalXcore.g:2378:3: ( rule__JvmUpperBoundAnded__Group__0 )
            // InternalXcore.g:2378:4: rule__JvmUpperBoundAnded__Group__0
            {
            pushFollow(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:2387:1: entryRuleJvmLowerBound : ruleJvmLowerBound EOF ;
    public final void entryRuleJvmLowerBound() throws RecognitionException {
        try {
            // InternalXcore.g:2388:1: ( ruleJvmLowerBound EOF )
            // InternalXcore.g:2389:1: ruleJvmLowerBound EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmLowerBoundRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleJvmLowerBound();

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

            }

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


    // $ANTLR start "ruleJvmLowerBound"
    // InternalXcore.g:2396:1: ruleJvmLowerBound : ( ( rule__JvmLowerBound__Group__0 ) ) ;
    public final void ruleJvmLowerBound() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2400:2: ( ( ( rule__JvmLowerBound__Group__0 ) ) )
            // InternalXcore.g:2401:2: ( ( rule__JvmLowerBound__Group__0 ) )
            {
            // InternalXcore.g:2401:2: ( ( rule__JvmLowerBound__Group__0 ) )
            // InternalXcore.g:2402:3: ( rule__JvmLowerBound__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmLowerBoundAccess().getGroup()); 
            }
            // InternalXcore.g:2403:3: ( rule__JvmLowerBound__Group__0 )
            // InternalXcore.g:2403:4: rule__JvmLowerBound__Group__0
            {
            pushFollow(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:2412:1: entryRuleJvmLowerBoundAnded : ruleJvmLowerBoundAnded EOF ;
    public final void entryRuleJvmLowerBoundAnded() throws RecognitionException {
        try {
            // InternalXcore.g:2413:1: ( ruleJvmLowerBoundAnded EOF )
            // InternalXcore.g:2414:1: ruleJvmLowerBoundAnded EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmLowerBoundAndedRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleJvmLowerBoundAnded();

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

            }

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


    // $ANTLR start "ruleJvmLowerBoundAnded"
    // InternalXcore.g:2421:1: ruleJvmLowerBoundAnded : ( ( rule__JvmLowerBoundAnded__Group__0 ) ) ;
    public final void ruleJvmLowerBoundAnded() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2425:2: ( ( ( rule__JvmLowerBoundAnded__Group__0 ) ) )
            // InternalXcore.g:2426:2: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
            {
            // InternalXcore.g:2426:2: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
            // InternalXcore.g:2427:3: ( rule__JvmLowerBoundAnded__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmLowerBoundAndedAccess().getGroup()); 
            }
            // InternalXcore.g:2428:3: ( rule__JvmLowerBoundAnded__Group__0 )
            // InternalXcore.g:2428:4: rule__JvmLowerBoundAnded__Group__0
            {
            pushFollow(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:2437:1: entryRuleQualifiedNameWithWildcard : ruleQualifiedNameWithWildcard EOF ;
    public final void entryRuleQualifiedNameWithWildcard() throws RecognitionException {
        try {
            // InternalXcore.g:2438:1: ( ruleQualifiedNameWithWildcard EOF )
            // InternalXcore.g:2439:1: ruleQualifiedNameWithWildcard EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameWithWildcardRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleQualifiedNameWithWildcard();

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

            }

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


    // $ANTLR start "ruleQualifiedNameWithWildcard"
    // InternalXcore.g:2446:1: ruleQualifiedNameWithWildcard : ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) ;
    public final void ruleQualifiedNameWithWildcard() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2450:2: ( ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) )
            // InternalXcore.g:2451:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
            {
            // InternalXcore.g:2451:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
            // InternalXcore.g:2452:3: ( rule__QualifiedNameWithWildcard__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); 
            }
            // InternalXcore.g:2453:3: ( rule__QualifiedNameWithWildcard__Group__0 )
            // InternalXcore.g:2453:4: rule__QualifiedNameWithWildcard__Group__0
            {
            pushFollow(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:2462:1: entryRuleXImportDeclaration : ruleXImportDeclaration EOF ;
    public final void entryRuleXImportDeclaration() throws RecognitionException {
        try {
            // InternalXcore.g:2463:1: ( ruleXImportDeclaration EOF )
            // InternalXcore.g:2464:1: ruleXImportDeclaration EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXImportDeclaration();

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

            }

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


    // $ANTLR start "ruleXImportDeclaration"
    // InternalXcore.g:2471:1: ruleXImportDeclaration : ( ( rule__XImportDeclaration__Group__0 ) ) ;
    public final void ruleXImportDeclaration() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2475:2: ( ( ( rule__XImportDeclaration__Group__0 ) ) )
            // InternalXcore.g:2476:2: ( ( rule__XImportDeclaration__Group__0 ) )
            {
            // InternalXcore.g:2476:2: ( ( rule__XImportDeclaration__Group__0 ) )
            // InternalXcore.g:2477:3: ( rule__XImportDeclaration__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getGroup()); 
            }
            // InternalXcore.g:2478:3: ( rule__XImportDeclaration__Group__0 )
            // InternalXcore.g:2478:4: rule__XImportDeclaration__Group__0
            {
            pushFollow(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:2487:1: entryRuleQualifiedNameInStaticImport : ruleQualifiedNameInStaticImport EOF ;
    public final void entryRuleQualifiedNameInStaticImport() throws RecognitionException {
        try {
            // InternalXcore.g:2488:1: ( ruleQualifiedNameInStaticImport EOF )
            // InternalXcore.g:2489:1: ruleQualifiedNameInStaticImport EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameInStaticImportRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleQualifiedNameInStaticImport();

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

            }

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


    // $ANTLR start "ruleQualifiedNameInStaticImport"
    // InternalXcore.g:2496:1: ruleQualifiedNameInStaticImport : ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) ;
    public final void ruleQualifiedNameInStaticImport() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2500:2: ( ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) )
            // InternalXcore.g:2501:2: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
            {
            // InternalXcore.g:2501:2: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
            // InternalXcore.g:2502:3: ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
            {
            // InternalXcore.g:2502:3: ( ( rule__QualifiedNameInStaticImport__Group__0 ) )
            // InternalXcore.g:2503:4: ( rule__QualifiedNameInStaticImport__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
            }
            // InternalXcore.g:2504:4: ( rule__QualifiedNameInStaticImport__Group__0 )
            // InternalXcore.g:2504:5: rule__QualifiedNameInStaticImport__Group__0
            {
            pushFollow(FOLLOW_3);
            rule__QualifiedNameInStaticImport__Group__0();

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

            }

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

            }

            // InternalXcore.g:2507:3: ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
            // InternalXcore.g:2508:4: ( rule__QualifiedNameInStaticImport__Group__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
            }
            // InternalXcore.g:2509:4: ( 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:2509:5: rule__QualifiedNameInStaticImport__Group__0
            	    {
            	    pushFollow(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:2518: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:2522:1: ( ( ( rule__XImportDirective__ImportedNamespaceAssignment_2_0 ) ) | ( ( rule__XImportDirective__ImportedObjectAssignment_2_1 ) ) )
            int alt2=2;
            alt2 = dfa2.predict(input);
            switch (alt2) {
                case 1 :
                    // InternalXcore.g:2523:2: ( ( rule__XImportDirective__ImportedNamespaceAssignment_2_0 ) )
                    {
                    // InternalXcore.g:2523:2: ( ( rule__XImportDirective__ImportedNamespaceAssignment_2_0 ) )
                    // InternalXcore.g:2524:3: ( rule__XImportDirective__ImportedNamespaceAssignment_2_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXImportDirectiveAccess().getImportedNamespaceAssignment_2_0()); 
                    }
                    // InternalXcore.g:2525:3: ( rule__XImportDirective__ImportedNamespaceAssignment_2_0 )
                    // InternalXcore.g:2525:4: rule__XImportDirective__ImportedNamespaceAssignment_2_0
                    {
                    pushFollow(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:2529:2: ( ( rule__XImportDirective__ImportedObjectAssignment_2_1 ) )
                    {
                    // InternalXcore.g:2529:2: ( ( rule__XImportDirective__ImportedObjectAssignment_2_1 ) )
                    // InternalXcore.g:2530:3: ( rule__XImportDirective__ImportedObjectAssignment_2_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXImportDirectiveAccess().getImportedObjectAssignment_2_1()); 
                    }
                    // InternalXcore.g:2531:3: ( rule__XImportDirective__ImportedObjectAssignment_2_1 )
                    // InternalXcore.g:2531:4: rule__XImportDirective__ImportedObjectAssignment_2_1
                    {
                    pushFollow(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:2539:1: rule__XClassifier__Alternatives : ( ( ruleXClass ) | ( ruleXDataType ) | ( ruleXEnum ) );
    public final void rule__XClassifier__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2543:1: ( ( ruleXClass ) | ( ruleXDataType ) | ( ruleXEnum ) )
            int alt3=3;
            alt3 = dfa3.predict(input);
            switch (alt3) {
                case 1 :
                    // InternalXcore.g:2544:2: ( ruleXClass )
                    {
                    // InternalXcore.g:2544:2: ( ruleXClass )
                    // InternalXcore.g:2545:3: ruleXClass
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXClassifierAccess().getXClassParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXClass();

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

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:2550:2: ( ruleXDataType )
                    {
                    // InternalXcore.g:2550:2: ( ruleXDataType )
                    // InternalXcore.g:2551:3: ruleXDataType
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXClassifierAccess().getXDataTypeParserRuleCall_1()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXDataType();

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

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:2556:2: ( ruleXEnum )
                    {
                    // InternalXcore.g:2556:2: ( ruleXEnum )
                    // InternalXcore.g:2557:3: ruleXEnum
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXClassifierAccess().getXEnumParserRuleCall_2()); 
                    }
                    pushFollow(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:2566: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:2570: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:2571:2: ( ( rule__XClass__Group_2_0__0 ) )
                    {
                    // InternalXcore.g:2571:2: ( ( rule__XClass__Group_2_0__0 ) )
                    // InternalXcore.g:2572:3: ( rule__XClass__Group_2_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXClassAccess().getGroup_2_0()); 
                    }
                    // InternalXcore.g:2573:3: ( rule__XClass__Group_2_0__0 )
                    // InternalXcore.g:2573:4: rule__XClass__Group_2_0__0
                    {
                    pushFollow(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:2577:2: ( ( rule__XClass__InterfaceAssignment_2_1 ) )
                    {
                    // InternalXcore.g:2577:2: ( ( rule__XClass__InterfaceAssignment_2_1 ) )
                    // InternalXcore.g:2578:3: ( rule__XClass__InterfaceAssignment_2_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXClassAccess().getInterfaceAssignment_2_1()); 
                    }
                    // InternalXcore.g:2579:3: ( rule__XClass__InterfaceAssignment_2_1 )
                    // InternalXcore.g:2579:4: rule__XClass__InterfaceAssignment_2_1
                    {
                    pushFollow(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:2587:1: rule__XMember__Alternatives : ( ( ruleXOperation ) | ( ruleXAttribute ) | ( ruleXReference ) );
    public final void rule__XMember__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2591:1: ( ( ruleXOperation ) | ( ruleXAttribute ) | ( ruleXReference ) )
            int alt5=3;
            alt5 = dfa5.predict(input);
            switch (alt5) {
                case 1 :
                    // InternalXcore.g:2592:2: ( ruleXOperation )
                    {
                    // InternalXcore.g:2592:2: ( ruleXOperation )
                    // InternalXcore.g:2593:3: ruleXOperation
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMemberAccess().getXOperationParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXOperation();

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

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:2598:2: ( ruleXAttribute )
                    {
                    // InternalXcore.g:2598:2: ( ruleXAttribute )
                    // InternalXcore.g:2599:3: ruleXAttribute
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMemberAccess().getXAttributeParserRuleCall_1()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXAttribute();

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

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:2604:2: ( ruleXReference )
                    {
                    // InternalXcore.g:2604:2: ( ruleXReference )
                    // InternalXcore.g:2605:3: ruleXReference
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMemberAccess().getXReferenceParserRuleCall_2()); 
                    }
                    pushFollow(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:2614: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:2618: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:2619:2: ( ( rule__XReference__Group_2_0__0 ) )
                    {
                    // InternalXcore.g:2619:2: ( ( rule__XReference__Group_2_0__0 ) )
                    // InternalXcore.g:2620:3: ( rule__XReference__Group_2_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getGroup_2_0()); 
                    }
                    // InternalXcore.g:2621:3: ( rule__XReference__Group_2_0__0 )
                    // InternalXcore.g:2621:4: rule__XReference__Group_2_0__0
                    {
                    pushFollow(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:2625:2: ( ( rule__XReference__Group_2_1__0 ) )
                    {
                    // InternalXcore.g:2625:2: ( ( rule__XReference__Group_2_1__0 ) )
                    // InternalXcore.g:2626:3: ( rule__XReference__Group_2_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getGroup_2_1()); 
                    }
                    // InternalXcore.g:2627:3: ( rule__XReference__Group_2_1__0 )
                    // InternalXcore.g:2627:4: rule__XReference__Group_2_1__0
                    {
                    pushFollow(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:2631:2: ( ( rule__XReference__Group_2_2__0 ) )
                    {
                    // InternalXcore.g:2631:2: ( ( rule__XReference__Group_2_2__0 ) )
                    // InternalXcore.g:2632:3: ( rule__XReference__Group_2_2__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getGroup_2_2()); 
                    }
                    // InternalXcore.g:2633:3: ( rule__XReference__Group_2_2__0 )
                    // InternalXcore.g:2633:4: rule__XReference__Group_2_2__0
                    {
                    pushFollow(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:2637:2: ( ( rule__XReference__Group_2_3__0 ) )
                    {
                    // InternalXcore.g:2637:2: ( ( rule__XReference__Group_2_3__0 ) )
                    // InternalXcore.g:2638:3: ( rule__XReference__Group_2_3__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getGroup_2_3()); 
                    }
                    // InternalXcore.g:2639:3: ( rule__XReference__Group_2_3__0 )
                    // InternalXcore.g:2639:4: rule__XReference__Group_2_3__0
                    {
                    pushFollow(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:2643:2: ( ( rule__XReference__Group_2_4__0 ) )
                    {
                    // InternalXcore.g:2643:2: ( ( rule__XReference__Group_2_4__0 ) )
                    // InternalXcore.g:2644:3: ( rule__XReference__Group_2_4__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getGroup_2_4()); 
                    }
                    // InternalXcore.g:2645:3: ( rule__XReference__Group_2_4__0 )
                    // InternalXcore.g:2645:4: rule__XReference__Group_2_4__0
                    {
                    pushFollow(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:2649:2: ( ( rule__XReference__Group_2_5__0 ) )
                    {
                    // InternalXcore.g:2649:2: ( ( rule__XReference__Group_2_5__0 ) )
                    // InternalXcore.g:2650:3: ( rule__XReference__Group_2_5__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getGroup_2_5()); 
                    }
                    // InternalXcore.g:2651:3: ( rule__XReference__Group_2_5__0 )
                    // InternalXcore.g:2651:4: rule__XReference__Group_2_5__0
                    {
                    pushFollow(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:2659: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:2663: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:2664:2: ( ( rule__XOperation__Group_3_0__0 ) )
                    {
                    // InternalXcore.g:2664:2: ( ( rule__XOperation__Group_3_0__0 ) )
                    // InternalXcore.g:2665:3: ( rule__XOperation__Group_3_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXOperationAccess().getGroup_3_0()); 
                    }
                    // InternalXcore.g:2666:3: ( rule__XOperation__Group_3_0__0 )
                    // InternalXcore.g:2666:4: rule__XOperation__Group_3_0__0
                    {
                    pushFollow(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:2670:2: ( ( rule__XOperation__Group_3_1__0 ) )
                    {
                    // InternalXcore.g:2670:2: ( ( rule__XOperation__Group_3_1__0 ) )
                    // InternalXcore.g:2671:3: ( rule__XOperation__Group_3_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXOperationAccess().getGroup_3_1()); 
                    }
                    // InternalXcore.g:2672:3: ( rule__XOperation__Group_3_1__0 )
                    // InternalXcore.g:2672:4: rule__XOperation__Group_3_1__0
                    {
                    pushFollow(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:2680: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:2684: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:2685:2: ( ( rule__XOperation__TypeAssignment_5_0 ) )
                    {
                    // InternalXcore.g:2685:2: ( ( rule__XOperation__TypeAssignment_5_0 ) )
                    // InternalXcore.g:2686:3: ( rule__XOperation__TypeAssignment_5_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXOperationAccess().getTypeAssignment_5_0()); 
                    }
                    // InternalXcore.g:2687:3: ( rule__XOperation__TypeAssignment_5_0 )
                    // InternalXcore.g:2687:4: rule__XOperation__TypeAssignment_5_0
                    {
                    pushFollow(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:2691:2: ( 'void' )
                    {
                    // InternalXcore.g:2691:2: ( 'void' )
                    // InternalXcore.g:2692:3: 'void'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXOperationAccess().getVoidKeyword_5_1()); 
                    }
                    match(input,16,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:2701: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:2705: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:2706:2: ( ( rule__XParameter__Group_1_0__0 ) )
                    {
                    // InternalXcore.g:2706:2: ( ( rule__XParameter__Group_1_0__0 ) )
                    // InternalXcore.g:2707:3: ( rule__XParameter__Group_1_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXParameterAccess().getGroup_1_0()); 
                    }
                    // InternalXcore.g:2708:3: ( rule__XParameter__Group_1_0__0 )
                    // InternalXcore.g:2708:4: rule__XParameter__Group_1_0__0
                    {
                    pushFollow(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:2712:2: ( ( rule__XParameter__Group_1_1__0 ) )
                    {
                    // InternalXcore.g:2712:2: ( ( rule__XParameter__Group_1_1__0 ) )
                    // InternalXcore.g:2713:3: ( rule__XParameter__Group_1_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXParameterAccess().getGroup_1_1()); 
                    }
                    // InternalXcore.g:2714:3: ( rule__XParameter__Group_1_1__0 )
                    // InternalXcore.g:2714:4: rule__XParameter__Group_1_1__0
                    {
                    pushFollow(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:2722: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:2726: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:2727:2: ( '?' )
                    {
                    // InternalXcore.g:2727:2: ( '?' )
                    // InternalXcore.g:2728:3: '?'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMultiplicityAccess().getQuestionMarkKeyword_1_0()); 
                    }
                    match(input,17,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXMultiplicityAccess().getQuestionMarkKeyword_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:2733:2: ( '*' )
                    {
                    // InternalXcore.g:2733:2: ( '*' )
                    // InternalXcore.g:2734:3: '*'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMultiplicityAccess().getAsteriskKeyword_1_1()); 
                    }
                    match(input,18,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXMultiplicityAccess().getAsteriskKeyword_1_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:2739:2: ( '+' )
                    {
                    // InternalXcore.g:2739:2: ( '+' )
                    // InternalXcore.g:2740:3: '+'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMultiplicityAccess().getPlusSignKeyword_1_2()); 
                    }
                    match(input,19,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXMultiplicityAccess().getPlusSignKeyword_1_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // InternalXcore.g:2745:2: ( ( rule__XMultiplicity__Group_1_3__0 ) )
                    {
                    // InternalXcore.g:2745:2: ( ( rule__XMultiplicity__Group_1_3__0 ) )
                    // InternalXcore.g:2746:3: ( rule__XMultiplicity__Group_1_3__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMultiplicityAccess().getGroup_1_3()); 
                    }
                    // InternalXcore.g:2747:3: ( rule__XMultiplicity__Group_1_3__0 )
                    // InternalXcore.g:2747:4: rule__XMultiplicity__Group_1_3__0
                    {
                    pushFollow(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:2755: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:2759: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:2760:2: ( RULE_INT )
                    {
                    // InternalXcore.g:2760:2: ( RULE_INT )
                    // InternalXcore.g:2761:3: RULE_INT
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMultiplicityAccess().getINTTerminalRuleCall_1_3_1_1_0()); 
                    }
                    match(input,RULE_INT,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXMultiplicityAccess().getINTTerminalRuleCall_1_3_1_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:2766:2: ( '?' )
                    {
                    // InternalXcore.g:2766:2: ( '?' )
                    // InternalXcore.g:2767:3: '?'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMultiplicityAccess().getQuestionMarkKeyword_1_3_1_1_1()); 
                    }
                    match(input,17,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXMultiplicityAccess().getQuestionMarkKeyword_1_3_1_1_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:2772:2: ( '*' )
                    {
                    // InternalXcore.g:2772:2: ( '*' )
                    // InternalXcore.g:2773:3: '*'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMultiplicityAccess().getAsteriskKeyword_1_3_1_1_2()); 
                    }
                    match(input,18,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:2782:1: rule__XGenericTypeArgument__Alternatives : ( ( ruleXGenericType ) | ( ruleXGenericWildcardTypeArgument ) );
    public final void rule__XGenericTypeArgument__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2786: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:2787:2: ( ruleXGenericType )
                    {
                    // InternalXcore.g:2787:2: ( ruleXGenericType )
                    // InternalXcore.g:2788:3: ruleXGenericType
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXGenericTypeArgumentAccess().getXGenericTypeParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXGenericType();

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

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:2793:2: ( ruleXGenericWildcardTypeArgument )
                    {
                    // InternalXcore.g:2793:2: ( ruleXGenericWildcardTypeArgument )
                    // InternalXcore.g:2794:3: ruleXGenericWildcardTypeArgument
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXGenericTypeArgumentAccess().getXGenericWildcardTypeArgumentParserRuleCall_1()); 
                    }
                    pushFollow(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:2803: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:2807: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:2808:2: ( ( rule__XGenericWildcardTypeArgument__Group_2_0__0 ) )
                    {
                    // InternalXcore.g:2808:2: ( ( rule__XGenericWildcardTypeArgument__Group_2_0__0 ) )
                    // InternalXcore.g:2809:3: ( rule__XGenericWildcardTypeArgument__Group_2_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXGenericWildcardTypeArgumentAccess().getGroup_2_0()); 
                    }
                    // InternalXcore.g:2810:3: ( rule__XGenericWildcardTypeArgument__Group_2_0__0 )
                    // InternalXcore.g:2810:4: rule__XGenericWildcardTypeArgument__Group_2_0__0
                    {
                    pushFollow(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:2814:2: ( ( rule__XGenericWildcardTypeArgument__Group_2_1__0 ) )
                    {
                    // InternalXcore.g:2814:2: ( ( rule__XGenericWildcardTypeArgument__Group_2_1__0 ) )
                    // InternalXcore.g:2815:3: ( rule__XGenericWildcardTypeArgument__Group_2_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXGenericWildcardTypeArgumentAccess().getGroup_2_1()); 
                    }
                    // InternalXcore.g:2816:3: ( rule__XGenericWildcardTypeArgument__Group_2_1__0 )
                    // InternalXcore.g:2816:4: rule__XGenericWildcardTypeArgument__Group_2_1__0
                    {
                    pushFollow(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:2824:1: rule__XID__Alternatives : ( ( RULE_ID ) | ( 'get' ) | ( 'isSet' ) | ( 'set' ) | ( 'unset' ) );
    public final void rule__XID__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2828: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:2829:2: ( RULE_ID )
                    {
                    // InternalXcore.g:2829:2: ( RULE_ID )
                    // InternalXcore.g:2830:3: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXIDAccess().getIDTerminalRuleCall_0()); 
                    }
                    match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXIDAccess().getIDTerminalRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:2835:2: ( 'get' )
                    {
                    // InternalXcore.g:2835:2: ( 'get' )
                    // InternalXcore.g:2836:3: 'get'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXIDAccess().getGetKeyword_1()); 
                    }
                    match(input,20,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXIDAccess().getGetKeyword_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:2841:2: ( 'isSet' )
                    {
                    // InternalXcore.g:2841:2: ( 'isSet' )
                    // InternalXcore.g:2842:3: 'isSet'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXIDAccess().getIsSetKeyword_2()); 
                    }
                    match(input,21,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXIDAccess().getIsSetKeyword_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // InternalXcore.g:2847:2: ( 'set' )
                    {
                    // InternalXcore.g:2847:2: ( 'set' )
                    // InternalXcore.g:2848:3: 'set'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXIDAccess().getSetKeyword_3()); 
                    }
                    match(input,22,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXIDAccess().getSetKeyword_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // InternalXcore.g:2853:2: ( 'unset' )
                    {
                    // InternalXcore.g:2853:2: ( 'unset' )
                    // InternalXcore.g:2854:3: 'unset'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXIDAccess().getUnsetKeyword_4()); 
                    }
                    match(input,23,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:2863:1: rule__ValidID__Alternatives : ( ( ruleXID ) | ( 'void' ) );
    public final void rule__ValidID__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:2867: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:2868:2: ( ruleXID )
                    {
                    // InternalXcore.g:2868:2: ( ruleXID )
                    // InternalXcore.g:2869:3: ruleXID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getValidIDAccess().getXIDParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXID();

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

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:2874:2: ( 'void' )
                    {
                    // InternalXcore.g:2874:2: ( 'void' )
                    // InternalXcore.g:2875:3: 'void'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getValidIDAccess().getVoidKeyword_1()); 
                    }
                    match(input,16,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:2884: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:2888: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:2889:2: ( ruleValidID )
                    {
                    // InternalXcore.g:2889:2: ( ruleValidID )
                    // InternalXcore.g:2890:3: ruleValidID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleValidID();

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

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:2895:2: ( 'abstract' )
                    {
                    // InternalXcore.g:2895:2: ( 'abstract' )
                    // InternalXcore.g:2896:3: 'abstract'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getAbstractKeyword_1()); 
                    }
                    match(input,24,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getAbstractKeyword_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:2901:2: ( 'annotation' )
                    {
                    // InternalXcore.g:2901:2: ( 'annotation' )
                    // InternalXcore.g:2902:3: 'annotation'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getAnnotationKeyword_2()); 
                    }
                    match(input,25,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getAnnotationKeyword_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // InternalXcore.g:2907:2: ( 'as' )
                    {
                    // InternalXcore.g:2907:2: ( 'as' )
                    // InternalXcore.g:2908:3: 'as'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getAsKeyword_3()); 
                    }
                    match(input,26,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getAsKeyword_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // InternalXcore.g:2913:2: ( 'class' )
                    {
                    // InternalXcore.g:2913:2: ( 'class' )
                    // InternalXcore.g:2914:3: 'class'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getClassKeyword_4()); 
                    }
                    match(input,27,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getClassKeyword_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // InternalXcore.g:2919:2: ( 'container' )
                    {
                    // InternalXcore.g:2919:2: ( 'container' )
                    // InternalXcore.g:2920:3: 'container'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getContainerKeyword_5()); 
                    }
                    match(input,28,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getContainerKeyword_5()); 
                    }

                    }


                    }
                    break;
                case 7 :
                    // InternalXcore.g:2925:2: ( 'contains' )
                    {
                    // InternalXcore.g:2925:2: ( 'contains' )
                    // InternalXcore.g:2926:3: 'contains'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getContainsKeyword_6()); 
                    }
                    match(input,29,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getContainsKeyword_6()); 
                    }

                    }


                    }
                    break;
                case 8 :
                    // InternalXcore.g:2931:2: ( 'convert' )
                    {
                    // InternalXcore.g:2931:2: ( 'convert' )
                    // InternalXcore.g:2932:3: 'convert'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getConvertKeyword_7()); 
                    }
                    match(input,30,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getConvertKeyword_7()); 
                    }

                    }


                    }
                    break;
                case 9 :
                    // InternalXcore.g:2937:2: ( 'create' )
                    {
                    // InternalXcore.g:2937:2: ( 'create' )
                    // InternalXcore.g:2938:3: 'create'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getCreateKeyword_8()); 
                    }
                    match(input,31,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getCreateKeyword_8()); 
                    }

                    }


                    }
                    break;
                case 10 :
                    // InternalXcore.g:2943:2: ( 'derived' )
                    {
                    // InternalXcore.g:2943:2: ( 'derived' )
                    // InternalXcore.g:2944:3: 'derived'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getDerivedKeyword_9()); 
                    }
                    match(input,32,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getDerivedKeyword_9()); 
                    }

                    }


                    }
                    break;
                case 11 :
                    // InternalXcore.g:2949:2: ( 'enum' )
                    {
                    // InternalXcore.g:2949:2: ( 'enum' )
                    // InternalXcore.g:2950:3: 'enum'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getEnumKeyword_10()); 
                    }
                    match(input,33,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getEnumKeyword_10()); 
                    }

                    }


                    }
                    break;
                case 12 :
                    // InternalXcore.g:2955:2: ( 'extends' )
                    {
                    // InternalXcore.g:2955:2: ( 'extends' )
                    // InternalXcore.g:2956:3: 'extends'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_11()); 
                    }
                    match(input,34,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_11()); 
                    }

                    }


                    }
                    break;
                case 13 :
                    // InternalXcore.g:2961:2: ( 'extension' )
                    {
                    // InternalXcore.g:2961:2: ( 'extension' )
                    // InternalXcore.g:2962:3: 'extension'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_12()); 
                    }
                    match(input,35,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_12()); 
                    }

                    }


                    }
                    break;
                case 14 :
                    // InternalXcore.g:2967:2: ( 'id' )
                    {
                    // InternalXcore.g:2967:2: ( 'id' )
                    // InternalXcore.g:2968:3: 'id'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getIdKeyword_13()); 
                    }
                    match(input,36,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getIdKeyword_13()); 
                    }

                    }


                    }
                    break;
                case 15 :
                    // InternalXcore.g:2973:2: ( 'import' )
                    {
                    // InternalXcore.g:2973:2: ( 'import' )
                    // InternalXcore.g:2974:3: 'import'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getImportKeyword_14()); 
                    }
                    match(input,37,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getImportKeyword_14()); 
                    }

                    }


                    }
                    break;
                case 16 :
                    // InternalXcore.g:2979:2: ( 'keys' )
                    {
                    // InternalXcore.g:2979:2: ( 'keys' )
                    // InternalXcore.g:2980:3: 'keys'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getKeysKeyword_15()); 
                    }
                    match(input,38,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getKeysKeyword_15()); 
                    }

                    }


                    }
                    break;
                case 17 :
                    // InternalXcore.g:2985:2: ( 'interface' )
                    {
                    // InternalXcore.g:2985:2: ( 'interface' )
                    // InternalXcore.g:2986:3: 'interface'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getInterfaceKeyword_16()); 
                    }
                    match(input,39,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getInterfaceKeyword_16()); 
                    }

                    }


                    }
                    break;
                case 18 :
                    // InternalXcore.g:2991:2: ( 'local' )
                    {
                    // InternalXcore.g:2991:2: ( 'local' )
                    // InternalXcore.g:2992:3: 'local'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getLocalKeyword_17()); 
                    }
                    match(input,40,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getLocalKeyword_17()); 
                    }

                    }


                    }
                    break;
                case 19 :
                    // InternalXcore.g:2997:2: ( 'op' )
                    {
                    // InternalXcore.g:2997:2: ( 'op' )
                    // InternalXcore.g:2998:3: 'op'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getOpKeyword_18()); 
                    }
                    match(input,41,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getOpKeyword_18()); 
                    }

                    }


                    }
                    break;
                case 20 :
                    // InternalXcore.g:3003:2: ( 'opposite' )
                    {
                    // InternalXcore.g:3003:2: ( 'opposite' )
                    // InternalXcore.g:3004:3: 'opposite'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getOppositeKeyword_19()); 
                    }
                    match(input,42,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getOppositeKeyword_19()); 
                    }

                    }


                    }
                    break;
                case 21 :
                    // InternalXcore.g:3009:2: ( 'package' )
                    {
                    // InternalXcore.g:3009:2: ( 'package' )
                    // InternalXcore.g:3010:3: 'package'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getPackageKeyword_20()); 
                    }
                    match(input,43,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getPackageKeyword_20()); 
                    }

                    }


                    }
                    break;
                case 22 :
                    // InternalXcore.g:3015:2: ( 'readonly' )
                    {
                    // InternalXcore.g:3015:2: ( 'readonly' )
                    // InternalXcore.g:3016:3: 'readonly'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getReadonlyKeyword_21()); 
                    }
                    match(input,44,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getReadonlyKeyword_21()); 
                    }

                    }


                    }
                    break;
                case 23 :
                    // InternalXcore.g:3021:2: ( 'refers' )
                    {
                    // InternalXcore.g:3021:2: ( 'refers' )
                    // InternalXcore.g:3022:3: 'refers'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getRefersKeyword_22()); 
                    }
                    match(input,45,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getRefersKeyword_22()); 
                    }

                    }


                    }
                    break;
                case 24 :
                    // InternalXcore.g:3027:2: ( 'resolving' )
                    {
                    // InternalXcore.g:3027:2: ( 'resolving' )
                    // InternalXcore.g:3028:3: 'resolving'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getResolvingKeyword_23()); 
                    }
                    match(input,46,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getResolvingKeyword_23()); 
                    }

                    }


                    }
                    break;
                case 25 :
                    // InternalXcore.g:3033:2: ( 'static' )
                    {
                    // InternalXcore.g:3033:2: ( 'static' )
                    // InternalXcore.g:3034:3: 'static'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_24()); 
                    }
                    match(input,47,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_24()); 
                    }

                    }


                    }
                    break;
                case 26 :
                    // InternalXcore.g:3039:2: ( 'throws' )
                    {
                    // InternalXcore.g:3039:2: ( 'throws' )
                    // InternalXcore.g:3040:3: 'throws'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getThrowsKeyword_25()); 
                    }
                    match(input,48,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getThrowsKeyword_25()); 
                    }

                    }


                    }
                    break;
                case 27 :
                    // InternalXcore.g:3045:2: ( 'transient' )
                    {
                    // InternalXcore.g:3045:2: ( 'transient' )
                    // InternalXcore.g:3046:3: 'transient'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getTransientKeyword_26()); 
                    }
                    match(input,49,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getTransientKeyword_26()); 
                    }

                    }


                    }
                    break;
                case 28 :
                    // InternalXcore.g:3051:2: ( 'unique' )
                    {
                    // InternalXcore.g:3051:2: ( 'unique' )
                    // InternalXcore.g:3052:3: 'unique'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getUniqueKeyword_27()); 
                    }
                    match(input,50,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getUniqueKeyword_27()); 
                    }

                    }


                    }
                    break;
                case 29 :
                    // InternalXcore.g:3057:2: ( 'unordered' )
                    {
                    // InternalXcore.g:3057:2: ( 'unordered' )
                    // InternalXcore.g:3058:3: 'unordered'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getUnorderedKeyword_28()); 
                    }
                    match(input,51,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getUnorderedKeyword_28()); 
                    }

                    }


                    }
                    break;
                case 30 :
                    // InternalXcore.g:3063:2: ( 'unsettable' )
                    {
                    // InternalXcore.g:3063:2: ( 'unsettable' )
                    // InternalXcore.g:3064:3: 'unsettable'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getUnsettableKeyword_29()); 
                    }
                    match(input,52,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getUnsettableKeyword_29()); 
                    }

                    }


                    }
                    break;
                case 31 :
                    // InternalXcore.g:3069:2: ( 'volatile' )
                    {
                    // InternalXcore.g:3069:2: ( 'volatile' )
                    // InternalXcore.g:3070:3: 'volatile'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getVolatileKeyword_30()); 
                    }
                    match(input,53,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getVolatileKeyword_30()); 
                    }

                    }


                    }
                    break;
                case 32 :
                    // InternalXcore.g:3075:2: ( 'wraps' )
                    {
                    // InternalXcore.g:3075:2: ( 'wraps' )
                    // InternalXcore.g:3076:3: 'wraps'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getWrapsKeyword_31()); 
                    }
                    match(input,54,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:3085: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:3089:1: ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) )
            int alt17=2;
            alt17 = dfa17.predict(input);
            switch (alt17) {
                case 1 :
                    // InternalXcore.g:3090:2: ( ( rule__XAssignment__Group_0__0 ) )
                    {
                    // InternalXcore.g:3090:2: ( ( rule__XAssignment__Group_0__0 ) )
                    // InternalXcore.g:3091:3: ( rule__XAssignment__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAssignmentAccess().getGroup_0()); 
                    }
                    // InternalXcore.g:3092:3: ( rule__XAssignment__Group_0__0 )
                    // InternalXcore.g:3092:4: rule__XAssignment__Group_0__0
                    {
                    pushFollow(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:3096:2: ( ( rule__XAssignment__Group_1__0 ) )
                    {
                    // InternalXcore.g:3096:2: ( ( rule__XAssignment__Group_1__0 ) )
                    // InternalXcore.g:3097:3: ( rule__XAssignment__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAssignmentAccess().getGroup_1()); 
                    }
                    // InternalXcore.g:3098:3: ( rule__XAssignment__Group_1__0 )
                    // InternalXcore.g:3098:4: rule__XAssignment__Group_1__0
                    {
                    pushFollow(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:3106: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:3110: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:3111:2: ( '+=' )
                    {
                    // InternalXcore.g:3111:2: ( '+=' )
                    // InternalXcore.g:3112:3: '+='
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); 
                    }
                    match(input,55,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3117:2: ( '-=' )
                    {
                    // InternalXcore.g:3117:2: ( '-=' )
                    // InternalXcore.g:3118:3: '-='
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); 
                    }
                    match(input,56,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:3123:2: ( '*=' )
                    {
                    // InternalXcore.g:3123:2: ( '*=' )
                    // InternalXcore.g:3124:3: '*='
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); 
                    }
                    match(input,57,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // InternalXcore.g:3129:2: ( '/=' )
                    {
                    // InternalXcore.g:3129:2: ( '/=' )
                    // InternalXcore.g:3130:3: '/='
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); 
                    }
                    match(input,58,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // InternalXcore.g:3135:2: ( '%=' )
                    {
                    // InternalXcore.g:3135:2: ( '%=' )
                    // InternalXcore.g:3136:3: '%='
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); 
                    }
                    match(input,59,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // InternalXcore.g:3141:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
                    {
                    // InternalXcore.g:3141:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
                    // InternalXcore.g:3142:3: ( rule__OpMultiAssign__Group_5__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpMultiAssignAccess().getGroup_5()); 
                    }
                    // InternalXcore.g:3143:3: ( rule__OpMultiAssign__Group_5__0 )
                    // InternalXcore.g:3143:4: rule__OpMultiAssign__Group_5__0
                    {
                    pushFollow(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:3147:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
                    {
                    // InternalXcore.g:3147:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
                    // InternalXcore.g:3148:3: ( rule__OpMultiAssign__Group_6__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpMultiAssignAccess().getGroup_6()); 
                    }
                    // InternalXcore.g:3149:3: ( rule__OpMultiAssign__Group_6__0 )
                    // InternalXcore.g:3149:4: rule__OpMultiAssign__Group_6__0
                    {
                    pushFollow(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:3157:1: rule__OpEquality__Alternatives : ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) );
    public final void rule__OpEquality__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:3161: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:3162:2: ( '==' )
                    {
                    // InternalXcore.g:3162:2: ( '==' )
                    // InternalXcore.g:3163:3: '=='
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); 
                    }
                    match(input,60,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3168:2: ( '!=' )
                    {
                    // InternalXcore.g:3168:2: ( '!=' )
                    // InternalXcore.g:3169:3: '!='
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); 
                    }
                    match(input,61,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:3174:2: ( '===' )
                    {
                    // InternalXcore.g:3174:2: ( '===' )
                    // InternalXcore.g:3175:3: '==='
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); 
                    }
                    match(input,62,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // InternalXcore.g:3180:2: ( '!==' )
                    {
                    // InternalXcore.g:3180:2: ( '!==' )
                    // InternalXcore.g:3181:3: '!=='
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); 
                    }
                    match(input,63,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:3190: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:3194: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:3195:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
                    {
                    // InternalXcore.g:3195:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
                    // InternalXcore.g:3196:3: ( rule__XRelationalExpression__Group_1_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0()); 
                    }
                    // InternalXcore.g:3197:3: ( rule__XRelationalExpression__Group_1_0__0 )
                    // InternalXcore.g:3197:4: rule__XRelationalExpression__Group_1_0__0
                    {
                    pushFollow(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:3201:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
                    {
                    // InternalXcore.g:3201:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
                    // InternalXcore.g:3202:3: ( rule__XRelationalExpression__Group_1_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1()); 
                    }
                    // InternalXcore.g:3203:3: ( rule__XRelationalExpression__Group_1_1__0 )
                    // InternalXcore.g:3203:4: rule__XRelationalExpression__Group_1_1__0
                    {
                    pushFollow(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:3211:1: rule__OpCompare__Alternatives : ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) );
    public final void rule__OpCompare__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:3215: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:3216:2: ( '>=' )
                    {
                    // InternalXcore.g:3216:2: ( '>=' )
                    // InternalXcore.g:3217:3: '>='
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); 
                    }
                    match(input,64,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3222:2: ( ( rule__OpCompare__Group_1__0 ) )
                    {
                    // InternalXcore.g:3222:2: ( ( rule__OpCompare__Group_1__0 ) )
                    // InternalXcore.g:3223:3: ( rule__OpCompare__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpCompareAccess().getGroup_1()); 
                    }
                    // InternalXcore.g:3224:3: ( rule__OpCompare__Group_1__0 )
                    // InternalXcore.g:3224:4: rule__OpCompare__Group_1__0
                    {
                    pushFollow(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:3228:2: ( '>' )
                    {
                    // InternalXcore.g:3228:2: ( '>' )
                    // InternalXcore.g:3229:3: '>'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); 
                    }
                    match(input,65,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // InternalXcore.g:3234:2: ( '<' )
                    {
                    // InternalXcore.g:3234:2: ( '<' )
                    // InternalXcore.g:3235:3: '<'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); 
                    }
                    match(input,66,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:3244: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:3248: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:3249:2: ( '->' )
                    {
                    // InternalXcore.g:3249:2: ( '->' )
                    // InternalXcore.g:3250:3: '->'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); 
                    }
                    match(input,67,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3255:2: ( '..<' )
                    {
                    // InternalXcore.g:3255:2: ( '..<' )
                    // InternalXcore.g:3256:3: '..<'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); 
                    }
                    match(input,68,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:3261:2: ( ( rule__OpOther__Group_2__0 ) )
                    {
                    // InternalXcore.g:3261:2: ( ( rule__OpOther__Group_2__0 ) )
                    // InternalXcore.g:3262:3: ( rule__OpOther__Group_2__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getGroup_2()); 
                    }
                    // InternalXcore.g:3263:3: ( rule__OpOther__Group_2__0 )
                    // InternalXcore.g:3263:4: rule__OpOther__Group_2__0
                    {
                    pushFollow(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:3267:2: ( '..' )
                    {
                    // InternalXcore.g:3267:2: ( '..' )
                    // InternalXcore.g:3268:3: '..'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); 
                    }
                    match(input,69,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // InternalXcore.g:3273:2: ( '=>' )
                    {
                    // InternalXcore.g:3273:2: ( '=>' )
                    // InternalXcore.g:3274:3: '=>'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); 
                    }
                    match(input,70,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // InternalXcore.g:3279:2: ( ( rule__OpOther__Group_5__0 ) )
                    {
                    // InternalXcore.g:3279:2: ( ( rule__OpOther__Group_5__0 ) )
                    // InternalXcore.g:3280:3: ( rule__OpOther__Group_5__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getGroup_5()); 
                    }
                    // InternalXcore.g:3281:3: ( rule__OpOther__Group_5__0 )
                    // InternalXcore.g:3281:4: rule__OpOther__Group_5__0
                    {
                    pushFollow(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:3285:2: ( ( rule__OpOther__Group_6__0 ) )
                    {
                    // InternalXcore.g:3285:2: ( ( rule__OpOther__Group_6__0 ) )
                    // InternalXcore.g:3286:3: ( rule__OpOther__Group_6__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getGroup_6()); 
                    }
                    // InternalXcore.g:3287:3: ( rule__OpOther__Group_6__0 )
                    // InternalXcore.g:3287:4: rule__OpOther__Group_6__0
                    {
                    pushFollow(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:3291:2: ( '<>' )
                    {
                    // InternalXcore.g:3291:2: ( '<>' )
                    // InternalXcore.g:3292:3: '<>'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); 
                    }
                    match(input,71,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); 
                    }

                    }


                    }
                    break;
                case 9 :
                    // InternalXcore.g:3297:2: ( '?:' )
                    {
                    // InternalXcore.g:3297:2: ( '?:' )
                    // InternalXcore.g:3298:3: '?:'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); 
                    }
                    match(input,72,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:3307: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:3311: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:3312:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
                    {
                    // InternalXcore.g:3312:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
                    // InternalXcore.g:3313:3: ( rule__OpOther__Group_5_1_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getGroup_5_1_0()); 
                    }
                    // InternalXcore.g:3314:3: ( rule__OpOther__Group_5_1_0__0 )
                    // InternalXcore.g:3314:4: rule__OpOther__Group_5_1_0__0
                    {
                    pushFollow(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:3318:2: ( '>' )
                    {
                    // InternalXcore.g:3318:2: ( '>' )
                    // InternalXcore.g:3319:3: '>'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); 
                    }
                    match(input,65,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:3328: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:3332: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:3333:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
                    {
                    // InternalXcore.g:3333:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
                    // InternalXcore.g:3334:3: ( rule__OpOther__Group_6_1_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); 
                    }
                    // InternalXcore.g:3335:3: ( rule__OpOther__Group_6_1_0__0 )
                    // InternalXcore.g:3335:4: rule__OpOther__Group_6_1_0__0
                    {
                    pushFollow(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:3339:2: ( '<' )
                    {
                    // InternalXcore.g:3339:2: ( '<' )
                    // InternalXcore.g:3340:3: '<'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
                    }
                    match(input,66,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:3345:2: ( '=>' )
                    {
                    // InternalXcore.g:3345:2: ( '=>' )
                    // InternalXcore.g:3346:3: '=>'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2()); 
                    }
                    match(input,70,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:3355:1: rule__OpAdd__Alternatives : ( ( '+' ) | ( '-' ) );
    public final void rule__OpAdd__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:3359: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:3360:2: ( '+' )
                    {
                    // InternalXcore.g:3360:2: ( '+' )
                    // InternalXcore.g:3361:3: '+'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); 
                    }
                    match(input,19,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3366:2: ( '-' )
                    {
                    // InternalXcore.g:3366:2: ( '-' )
                    // InternalXcore.g:3367:3: '-'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); 
                    }
                    match(input,73,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:3376:1: rule__OpMulti__Alternatives : ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) );
    public final void rule__OpMulti__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:3380: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:3381:2: ( '*' )
                    {
                    // InternalXcore.g:3381:2: ( '*' )
                    // InternalXcore.g:3382:3: '*'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); 
                    }
                    match(input,18,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3387:2: ( '**' )
                    {
                    // InternalXcore.g:3387:2: ( '**' )
                    // InternalXcore.g:3388:3: '**'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); 
                    }
                    match(input,74,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:3393:2: ( '/' )
                    {
                    // InternalXcore.g:3393:2: ( '/' )
                    // InternalXcore.g:3394:3: '/'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); 
                    }
                    match(input,75,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // InternalXcore.g:3399:2: ( '%' )
                    {
                    // InternalXcore.g:3399:2: ( '%' )
                    // InternalXcore.g:3400:3: '%'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); 
                    }
                    match(input,76,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:3409:1: rule__XUnaryOperation__Alternatives : ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) );
    public final void rule__XUnaryOperation__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:3413: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:3414:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
                    {
                    // InternalXcore.g:3414:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
                    // InternalXcore.g:3415:3: ( rule__XUnaryOperation__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXUnaryOperationAccess().getGroup_0()); 
                    }
                    // InternalXcore.g:3416:3: ( rule__XUnaryOperation__Group_0__0 )
                    // InternalXcore.g:3416:4: rule__XUnaryOperation__Group_0__0
                    {
                    pushFollow(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:3420:2: ( ruleXCastedExpression )
                    {
                    // InternalXcore.g:3420:2: ( ruleXCastedExpression )
                    // InternalXcore.g:3421:3: ruleXCastedExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1()); 
                    }
                    pushFollow(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:3430:1: rule__OpUnary__Alternatives : ( ( '!' ) | ( '-' ) | ( '+' ) );
    public final void rule__OpUnary__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:3434: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:3435:2: ( '!' )
                    {
                    // InternalXcore.g:3435:2: ( '!' )
                    // InternalXcore.g:3436:3: '!'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); 
                    }
                    match(input,77,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3441:2: ( '-' )
                    {
                    // InternalXcore.g:3441:2: ( '-' )
                    // InternalXcore.g:3442:3: '-'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); 
                    }
                    match(input,73,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:3447:2: ( '+' )
                    {
                    // InternalXcore.g:3447:2: ( '+' )
                    // InternalXcore.g:3448:3: '+'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); 
                    }
                    match(input,19,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:3457:1: rule__OpPostfix__Alternatives : ( ( '++' ) | ( '--' ) );
    public final void rule__OpPostfix__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:3461: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:3462:2: ( '++' )
                    {
                    // InternalXcore.g:3462:2: ( '++' )
                    // InternalXcore.g:3463:3: '++'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0()); 
                    }
                    match(input,78,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3468:2: ( '--' )
                    {
                    // InternalXcore.g:3468:2: ( '--' )
                    // InternalXcore.g:3469:3: '--'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1()); 
                    }
                    match(input,79,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:3478: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:3482: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:3483:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
                    {
                    // InternalXcore.g:3483:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
                    // InternalXcore.g:3484:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0()); 
                    }
                    // InternalXcore.g:3485:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
                    // InternalXcore.g:3485:4: rule__XMemberFeatureCall__Group_1_0__0
                    {
                    pushFollow(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:3489:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
                    {
                    // InternalXcore.g:3489:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
                    // InternalXcore.g:3490:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1()); 
                    }
                    // InternalXcore.g:3491:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
                    // InternalXcore.g:3491:4: rule__XMemberFeatureCall__Group_1_1__0
                    {
                    pushFollow(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:3499: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:3503: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:3504:2: ( '.' )
                    {
                    // InternalXcore.g:3504:2: ( '.' )
                    // InternalXcore.g:3505:3: '.'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0()); 
                    }
                    match(input,80,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:3510:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
                    {
                    // InternalXcore.g:3510:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
                    // InternalXcore.g:3511:3: ( 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:3512:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
                    // InternalXcore.g:3512:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1
                    {
                    pushFollow(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:3520: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:3524: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:3525:2: ( '.' )
                    {
                    // InternalXcore.g:3525:2: ( '.' )
                    // InternalXcore.g:3526:3: '.'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0()); 
                    }
                    match(input,80,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:3531:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
                    {
                    // InternalXcore.g:3531:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
                    // InternalXcore.g:3532:3: ( 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:3533:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
                    // InternalXcore.g:3533:4: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1
                    {
                    pushFollow(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:3537:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
                    {
                    // InternalXcore.g:3537:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
                    // InternalXcore.g:3538:3: ( 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:3539:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
                    // InternalXcore.g:3539:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2
                    {
                    pushFollow(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:3547: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:3551: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:3552:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
                    {
                    // InternalXcore.g:3552:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
                    // InternalXcore.g:3553:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); 
                    }
                    // InternalXcore.g:3554:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
                    // InternalXcore.g:3554:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
                    {
                    pushFollow(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:3558:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
                    {
                    // InternalXcore.g:3558:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
                    // InternalXcore.g:3559:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1()); 
                    }
                    // InternalXcore.g:3560:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
                    // InternalXcore.g:3560:4: rule__XMemberFeatureCall__Group_1_1_3_1_1__0
                    {
                    pushFollow(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:3568: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:3572: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:3573:2: ( ruleXConstructorCall )
                    {
                    // InternalXcore.g:3573:2: ( ruleXConstructorCall )
                    // InternalXcore.g:3574:3: ruleXConstructorCall
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXConstructorCall();

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

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3579:2: ( ruleXBlockExpression )
                    {
                    // InternalXcore.g:3579:2: ( ruleXBlockExpression )
                    // InternalXcore.g:3580:3: ruleXBlockExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXBlockExpression();

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

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:3585:2: ( ruleXSwitchExpression )
                    {
                    // InternalXcore.g:3585:2: ( ruleXSwitchExpression )
                    // InternalXcore.g:3586:3: ruleXSwitchExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXSwitchExpression();

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

                    }


                    }
                    break;
                case 4 :
                    // InternalXcore.g:3591:2: ( ( ruleXSynchronizedExpression ) )
                    {
                    // InternalXcore.g:3591:2: ( ( ruleXSynchronizedExpression ) )
                    // InternalXcore.g:3592:3: ( ruleXSynchronizedExpression )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXSynchronizedExpressionParserRuleCall_3()); 
                    }
                    // InternalXcore.g:3593:3: ( ruleXSynchronizedExpression )
                    // InternalXcore.g:3593:4: ruleXSynchronizedExpression
                    {
                    pushFollow(FOLLOW_2);
                    ruleXSynchronizedExpression();

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

                    }

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

                    }


                    }
                    break;
                case 5 :
                    // InternalXcore.g:3597:2: ( ruleXFeatureCall )
                    {
                    // InternalXcore.g:3597:2: ( ruleXFeatureCall )
                    // InternalXcore.g:3598:3: ruleXFeatureCall
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_4()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXFeatureCall();

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

                    }


                    }
                    break;
                case 6 :
                    // InternalXcore.g:3603:2: ( ruleXLiteral )
                    {
                    // InternalXcore.g:3603:2: ( ruleXLiteral )
                    // InternalXcore.g:3604:3: ruleXLiteral
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_5()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXLiteral();

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

                    }


                    }
                    break;
                case 7 :
                    // InternalXcore.g:3609:2: ( ruleXIfExpression )
                    {
                    // InternalXcore.g:3609:2: ( ruleXIfExpression )
                    // InternalXcore.g:3610:3: ruleXIfExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_6()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXIfExpression();

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

                    }


                    }
                    break;
                case 8 :
                    // InternalXcore.g:3615:2: ( ( ruleXForLoopExpression ) )
                    {
                    // InternalXcore.g:3615:2: ( ( ruleXForLoopExpression ) )
                    // InternalXcore.g:3616:3: ( ruleXForLoopExpression )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); 
                    }
                    // InternalXcore.g:3617:3: ( ruleXForLoopExpression )
                    // InternalXcore.g:3617:4: ruleXForLoopExpression
                    {
                    pushFollow(FOLLOW_2);
                    ruleXForLoopExpression();

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

                    }

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

                    }


                    }
                    break;
                case 9 :
                    // InternalXcore.g:3621:2: ( ruleXBasicForLoopExpression )
                    {
                    // InternalXcore.g:3621:2: ( ruleXBasicForLoopExpression )
                    // InternalXcore.g:3622:3: ruleXBasicForLoopExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXBasicForLoopExpression();

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

                    }


                    }
                    break;
                case 10 :
                    // InternalXcore.g:3627:2: ( ruleXWhileExpression )
                    {
                    // InternalXcore.g:3627:2: ( ruleXWhileExpression )
                    // InternalXcore.g:3628:3: ruleXWhileExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_9()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXWhileExpression();

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

                    }


                    }
                    break;
                case 11 :
                    // InternalXcore.g:3633:2: ( ruleXDoWhileExpression )
                    {
                    // InternalXcore.g:3633:2: ( ruleXDoWhileExpression )
                    // InternalXcore.g:3634:3: ruleXDoWhileExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_10()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXDoWhileExpression();

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

                    }


                    }
                    break;
                case 12 :
                    // InternalXcore.g:3639:2: ( ruleXThrowExpression )
                    {
                    // InternalXcore.g:3639:2: ( ruleXThrowExpression )
                    // InternalXcore.g:3640:3: ruleXThrowExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_11()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXThrowExpression();

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

                    }


                    }
                    break;
                case 13 :
                    // InternalXcore.g:3645:2: ( ruleXReturnExpression )
                    {
                    // InternalXcore.g:3645:2: ( ruleXReturnExpression )
                    // InternalXcore.g:3646:3: ruleXReturnExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_12()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXReturnExpression();

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

                    }


                    }
                    break;
                case 14 :
                    // InternalXcore.g:3651:2: ( ruleXTryCatchFinallyExpression )
                    {
                    // InternalXcore.g:3651:2: ( ruleXTryCatchFinallyExpression )
                    // InternalXcore.g:3652:3: ruleXTryCatchFinallyExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_13()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXTryCatchFinallyExpression();

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

                    }


                    }
                    break;
                case 15 :
                    // InternalXcore.g:3657:2: ( ruleXParenthesizedExpression )
                    {
                    // InternalXcore.g:3657:2: ( ruleXParenthesizedExpression )
                    // InternalXcore.g:3658:3: ruleXParenthesizedExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_14()); 
                    }
                    pushFollow(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:3667: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:3671: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:3672:2: ( ruleXCollectionLiteral )
                    {
                    // InternalXcore.g:3672:2: ( ruleXCollectionLiteral )
                    // InternalXcore.g:3673:3: ruleXCollectionLiteral
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXCollectionLiteral();

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

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3678:2: ( ( ruleXClosure ) )
                    {
                    // InternalXcore.g:3678:2: ( ( ruleXClosure ) )
                    // InternalXcore.g:3679:3: ( ruleXClosure )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1()); 
                    }
                    // InternalXcore.g:3680:3: ( ruleXClosure )
                    // InternalXcore.g:3680:4: ruleXClosure
                    {
                    pushFollow(FOLLOW_2);
                    ruleXClosure();

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

                    }

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

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:3684:2: ( ruleXBooleanLiteral )
                    {
                    // InternalXcore.g:3684:2: ( ruleXBooleanLiteral )
                    // InternalXcore.g:3685:3: ruleXBooleanLiteral
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXBooleanLiteral();

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

                    }


                    }
                    break;
                case 4 :
                    // InternalXcore.g:3690:2: ( ruleXNumberLiteral )
                    {
                    // InternalXcore.g:3690:2: ( ruleXNumberLiteral )
                    // InternalXcore.g:3691:3: ruleXNumberLiteral
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXNumberLiteral();

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

                    }


                    }
                    break;
                case 5 :
                    // InternalXcore.g:3696:2: ( ruleXNullLiteral )
                    {
                    // InternalXcore.g:3696:2: ( ruleXNullLiteral )
                    // InternalXcore.g:3697:3: ruleXNullLiteral
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXNullLiteral();

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

                    }


                    }
                    break;
                case 6 :
                    // InternalXcore.g:3702:2: ( ruleXStringLiteral )
                    {
                    // InternalXcore.g:3702:2: ( ruleXStringLiteral )
                    // InternalXcore.g:3703:3: ruleXStringLiteral
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXStringLiteral();

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

                    }


                    }
                    break;
                case 7 :
                    // InternalXcore.g:3708:2: ( ruleXTypeLiteral )
                    {
                    // InternalXcore.g:3708:2: ( ruleXTypeLiteral )
                    // InternalXcore.g:3709:3: ruleXTypeLiteral
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6()); 
                    }
                    pushFollow(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:3718:1: rule__XCollectionLiteral__Alternatives : ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) );
    public final void rule__XCollectionLiteral__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:3722: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:3723:2: ( ruleXSetLiteral )
                    {
                    // InternalXcore.g:3723:2: ( ruleXSetLiteral )
                    // InternalXcore.g:3724:3: ruleXSetLiteral
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXSetLiteral();

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

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3729:2: ( ruleXListLiteral )
                    {
                    // InternalXcore.g:3729:2: ( ruleXListLiteral )
                    // InternalXcore.g:3730:3: ruleXListLiteral
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1()); 
                    }
                    pushFollow(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:3739: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:3743: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:3744:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
                    {
                    // InternalXcore.g:3744:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
                    // InternalXcore.g:3745:3: ( rule__XSwitchExpression__Group_2_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); 
                    }
                    // InternalXcore.g:3746:3: ( rule__XSwitchExpression__Group_2_0__0 )
                    // InternalXcore.g:3746:4: rule__XSwitchExpression__Group_2_0__0
                    {
                    pushFollow(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:3750:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
                    {
                    // InternalXcore.g:3750:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
                    // InternalXcore.g:3751:3: ( rule__XSwitchExpression__Group_2_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1()); 
                    }
                    // InternalXcore.g:3752:3: ( rule__XSwitchExpression__Group_2_1__0 )
                    // InternalXcore.g:3752:4: rule__XSwitchExpression__Group_2_1__0
                    {
                    pushFollow(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:3760: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:3764: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:3765:2: ( ( rule__XCasePart__Group_3_0__0 ) )
                    {
                    // InternalXcore.g:3765:2: ( ( rule__XCasePart__Group_3_0__0 ) )
                    // InternalXcore.g:3766:3: ( rule__XCasePart__Group_3_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXCasePartAccess().getGroup_3_0()); 
                    }
                    // InternalXcore.g:3767:3: ( rule__XCasePart__Group_3_0__0 )
                    // InternalXcore.g:3767:4: rule__XCasePart__Group_3_0__0
                    {
                    pushFollow(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:3771:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
                    {
                    // InternalXcore.g:3771:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
                    // InternalXcore.g:3772:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXCasePartAccess().getFallThroughAssignment_3_1()); 
                    }
                    // InternalXcore.g:3773:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
                    // InternalXcore.g:3773:4: rule__XCasePart__FallThroughAssignment_3_1
                    {
                    pushFollow(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:3781:1: rule__XExpressionOrVarDeclaration__Alternatives : ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) );
    public final void rule__XExpressionOrVarDeclaration__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:3785: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:3786:2: ( ruleXVariableDeclaration )
                    {
                    // InternalXcore.g:3786:2: ( ruleXVariableDeclaration )
                    // InternalXcore.g:3787:3: ruleXVariableDeclaration
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXVariableDeclarationParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleXVariableDeclaration();

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

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3792:2: ( ruleXExpression )
                    {
                    // InternalXcore.g:3792:2: ( ruleXExpression )
                    // InternalXcore.g:3793:3: ruleXExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXExpressionParserRuleCall_1()); 
                    }
                    pushFollow(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:3802: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:3806: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:3807:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
                    {
                    // InternalXcore.g:3807:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
                    // InternalXcore.g:3808:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0()); 
                    }
                    // InternalXcore.g:3809:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
                    // InternalXcore.g:3809:4: rule__XVariableDeclaration__WriteableAssignment_1_0
                    {
                    pushFollow(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:3813:2: ( 'val' )
                    {
                    // InternalXcore.g:3813:2: ( 'val' )
                    // InternalXcore.g:3814:3: 'val'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1()); 
                    }
                    match(input,81,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:3823: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:3827: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:3828:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
                    {
                    // InternalXcore.g:3828:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
                    // InternalXcore.g:3829:3: ( rule__XVariableDeclaration__Group_2_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); 
                    }
                    // InternalXcore.g:3830:3: ( rule__XVariableDeclaration__Group_2_0__0 )
                    // InternalXcore.g:3830:4: rule__XVariableDeclaration__Group_2_0__0
                    {
                    pushFollow(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:3834:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
                    {
                    // InternalXcore.g:3834:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
                    // InternalXcore.g:3835:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1()); 
                    }
                    // InternalXcore.g:3836:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
                    // InternalXcore.g:3836:4: rule__XVariableDeclaration__NameAssignment_2_1
                    {
                    pushFollow(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:3844: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:3848: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:3849:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
                    {
                    // InternalXcore.g:3849:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
                    // InternalXcore.g:3850:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); 
                    }
                    // InternalXcore.g:3851:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
                    // InternalXcore.g:3851:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
                    {
                    pushFollow(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:3855:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
                    {
                    // InternalXcore.g:3855:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
                    // InternalXcore.g:3856:3: ( rule__XFeatureCall__Group_3_1_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1()); 
                    }
                    // InternalXcore.g:3857:3: ( rule__XFeatureCall__Group_3_1_1__0 )
                    // InternalXcore.g:3857:4: rule__XFeatureCall__Group_3_1_1__0
                    {
                    pushFollow(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:3865:1: rule__IdOrSuper__Alternatives : ( ( ruleFeatureCallID ) | ( 'super' ) );
    public final void rule__IdOrSuper__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:3869: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:3870:2: ( ruleFeatureCallID )
                    {
                    // InternalXcore.g:3870:2: ( ruleFeatureCallID )
                    // InternalXcore.g:3871:3: ruleFeatureCallID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleFeatureCallID();

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

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3876:2: ( 'super' )
                    {
                    // InternalXcore.g:3876:2: ( 'super' )
                    // InternalXcore.g:3877:3: 'super'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); 
                    }
                    match(input,82,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:3886: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:3890: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:3891:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
                    {
                    // InternalXcore.g:3891:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
                    // InternalXcore.g:3892:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); 
                    }
                    // InternalXcore.g:3893:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
                    // InternalXcore.g:3893:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
                    {
                    pushFollow(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:3897:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
                    {
                    // InternalXcore.g:3897:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
                    // InternalXcore.g:3898:3: ( rule__XConstructorCall__Group_4_1_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1()); 
                    }
                    // InternalXcore.g:3899:3: ( rule__XConstructorCall__Group_4_1_1__0 )
                    // InternalXcore.g:3899:4: rule__XConstructorCall__Group_4_1_1__0
                    {
                    pushFollow(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:3907: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:3911: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:3912:2: ( 'false' )
                    {
                    // InternalXcore.g:3912:2: ( 'false' )
                    // InternalXcore.g:3913:3: 'false'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0()); 
                    }
                    match(input,83,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3918:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
                    {
                    // InternalXcore.g:3918:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
                    // InternalXcore.g:3919:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1()); 
                    }
                    // InternalXcore.g:3920:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
                    // InternalXcore.g:3920:4: rule__XBooleanLiteral__IsTrueAssignment_1_1
                    {
                    pushFollow(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:3928: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:3932: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:3933:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
                    {
                    // InternalXcore.g:3933:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
                    // InternalXcore.g:3934:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0()); 
                    }
                    // InternalXcore.g:3935:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
                    // InternalXcore.g:3935:4: rule__XTryCatchFinallyExpression__Group_3_0__0
                    {
                    pushFollow(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:3939:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
                    {
                    // InternalXcore.g:3939:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
                    // InternalXcore.g:3940:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1()); 
                    }
                    // InternalXcore.g:3941:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
                    // InternalXcore.g:3941:4: rule__XTryCatchFinallyExpression__Group_3_1__0
                    {
                    pushFollow(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:3949: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:3953: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:3954:2: ( RULE_HEX )
                    {
                    // InternalXcore.g:3954:2: ( RULE_HEX )
                    // InternalXcore.g:3955:3: RULE_HEX
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0()); 
                    }
                    match(input,RULE_HEX,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3960:2: ( ( rule__Number__Group_1__0 ) )
                    {
                    // InternalXcore.g:3960:2: ( ( rule__Number__Group_1__0 ) )
                    // InternalXcore.g:3961:3: ( rule__Number__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getNumberAccess().getGroup_1()); 
                    }
                    // InternalXcore.g:3962:3: ( rule__Number__Group_1__0 )
                    // InternalXcore.g:3962:4: rule__Number__Group_1__0
                    {
                    pushFollow(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:3970: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:3974: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:3975:2: ( RULE_INT )
                    {
                    // InternalXcore.g:3975:2: ( RULE_INT )
                    // InternalXcore.g:3976:3: RULE_INT
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0()); 
                    }
                    match(input,RULE_INT,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3981:2: ( RULE_DECIMAL )
                    {
                    // InternalXcore.g:3981:2: ( RULE_DECIMAL )
                    // InternalXcore.g:3982:3: RULE_DECIMAL
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1()); 
                    }
                    match(input,RULE_DECIMAL,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:3991: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:3995: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:3996:2: ( RULE_INT )
                    {
                    // InternalXcore.g:3996:2: ( RULE_INT )
                    // InternalXcore.g:3997:3: RULE_INT
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0()); 
                    }
                    match(input,RULE_INT,FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4002:2: ( RULE_DECIMAL )
                    {
                    // InternalXcore.g:4002:2: ( RULE_DECIMAL )
                    // InternalXcore.g:4003:3: RULE_DECIMAL
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1()); 
                    }
                    match(input,RULE_DECIMAL,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:4012:1: rule__JvmTypeReference__Alternatives : ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) );
    public final void rule__JvmTypeReference__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:4016: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:4017:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
                    {
                    // InternalXcore.g:4017:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
                    // InternalXcore.g:4018:3: ( rule__JvmTypeReference__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0()); 
                    }
                    // InternalXcore.g:4019:3: ( rule__JvmTypeReference__Group_0__0 )
                    // InternalXcore.g:4019:4: rule__JvmTypeReference__Group_0__0
                    {
                    pushFollow(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:4023:2: ( ruleXFunctionTypeRef )
                    {
                    // InternalXcore.g:4023:2: ( ruleXFunctionTypeRef )
                    // InternalXcore.g:4024:3: ruleXFunctionTypeRef
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); 
                    }
                    pushFollow(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:4033:1: rule__JvmArgumentTypeReference__Alternatives : ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) );
    public final void rule__JvmArgumentTypeReference__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:4037: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:4038:2: ( ruleJvmTypeReference )
                    {
                    // InternalXcore.g:4038:2: ( ruleJvmTypeReference )
                    // InternalXcore.g:4039:3: ruleJvmTypeReference
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_2);
                    ruleJvmTypeReference();

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

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4044:2: ( ruleJvmWildcardTypeReference )
                    {
                    // InternalXcore.g:4044:2: ( ruleJvmWildcardTypeReference )
                    // InternalXcore.g:4045:3: ruleJvmWildcardTypeReference
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); 
                    }
                    pushFollow(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:4054: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:4058: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:4059:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
                    {
                    // InternalXcore.g:4059:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
                    // InternalXcore.g:4060:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_0()); 
                    }
                    // InternalXcore.g:4061:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
                    // InternalXcore.g:4061:4: rule__JvmWildcardTypeReference__Group_2_0__0
                    {
                    pushFollow(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:4065:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
                    {
                    // InternalXcore.g:4065:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
                    // InternalXcore.g:4066:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_1()); 
                    }
                    // InternalXcore.g:4067:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
                    // InternalXcore.g:4067:4: rule__JvmWildcardTypeReference__Group_2_1__0
                    {
                    pushFollow(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:4075: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:4079: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:4080:2: ( ( rule__XImportDeclaration__Group_1_0__0 ) )
                    {
                    // InternalXcore.g:4080:2: ( ( rule__XImportDeclaration__Group_1_0__0 ) )
                    // InternalXcore.g:4081:3: ( rule__XImportDeclaration__Group_1_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXImportDeclarationAccess().getGroup_1_0()); 
                    }
                    // InternalXcore.g:4082:3: ( rule__XImportDeclaration__Group_1_0__0 )
                    // InternalXcore.g:4082:4: rule__XImportDeclaration__Group_1_0__0
                    {
                    pushFollow(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:4086:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_1 ) )
                    {
                    // InternalXcore.g:4086:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_1 ) )
                    // InternalXcore.g:4087:3: ( rule__XImportDeclaration__ImportedTypeAssignment_1_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_1()); 
                    }
                    // InternalXcore.g:4088:3: ( rule__XImportDeclaration__ImportedTypeAssignment_1_1 )
                    // InternalXcore.g:4088:4: rule__XImportDeclaration__ImportedTypeAssignment_1_1
                    {
                    pushFollow(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:4092:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_1_2 ) )
                    {
                    // InternalXcore.g:4092:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_1_2 ) )
                    // InternalXcore.g:4093:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_1_2 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_1_2()); 
                    }
                    // InternalXcore.g:4094:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_1_2 )
                    // InternalXcore.g:4094:4: rule__XImportDeclaration__ImportedNamespaceAssignment_1_2
                    {
                    pushFollow(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:4102: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:4106: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:4107:2: ( ( rule__XImportDeclaration__WildcardAssignment_1_0_3_0 ) )
                    {
                    // InternalXcore.g:4107:2: ( ( rule__XImportDeclaration__WildcardAssignment_1_0_3_0 ) )
                    // InternalXcore.g:4108:3: ( rule__XImportDeclaration__WildcardAssignment_1_0_3_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_1_0_3_0()); 
                    }
                    // InternalXcore.g:4109:3: ( rule__XImportDeclaration__WildcardAssignment_1_0_3_0 )
                    // InternalXcore.g:4109:4: rule__XImportDeclaration__WildcardAssignment_1_0_3_0
                    {
                    pushFollow(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:4113:2: ( ( rule__XImportDeclaration__MemberNameAssignment_1_0_3_1 ) )
                    {
                    // InternalXcore.g:4113:2: ( ( rule__XImportDeclaration__MemberNameAssignment_1_0_3_1 ) )
                    // InternalXcore.g:4114:3: ( rule__XImportDeclaration__MemberNameAssignment_1_0_3_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_1_0_3_1()); 
                    }
                    // InternalXcore.g:4115:3: ( rule__XImportDeclaration__MemberNameAssignment_1_0_3_1 )
                    // InternalXcore.g:4115:4: rule__XImportDeclaration__MemberNameAssignment_1_0_3_1
                    {
                    pushFollow(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:4123: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:4127:1: ( rule__XPackage__Group__0__Impl rule__XPackage__Group__1 )
            // InternalXcore.g:4128:2: rule__XPackage__Group__0__Impl rule__XPackage__Group__1
            {
            pushFollow(FOLLOW_4);
            rule__XPackage__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:4135:1: rule__XPackage__Group__0__Impl : ( () ) ;
    public final void rule__XPackage__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:4139:1: ( ( () ) )
            // InternalXcore.g:4140:1: ( () )
            {
            // InternalXcore.g:4140:1: ( () )
            // InternalXcore.g:4141:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getXPackageAction_0()); 
            }
            // InternalXcore.g:4142:2: ()
            // InternalXcore.g:4142:3: 
            {
            }

            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:4150: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:4154:1: ( rule__XPackage__Group__1__Impl rule__XPackage__Group__2 )
            // InternalXcore.g:4155:2: rule__XPackage__Group__1__Impl rule__XPackage__Group__2
            {
            pushFollow(FOLLOW_4);
            rule__XPackage__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:4162: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:4166:1: ( ( ( rule__XPackage__AnnotationsAssignment_1 )* ) )
            // InternalXcore.g:4167:1: ( ( rule__XPackage__AnnotationsAssignment_1 )* )
            {
            // InternalXcore.g:4167:1: ( ( rule__XPackage__AnnotationsAssignment_1 )* )
            // InternalXcore.g:4168:2: ( rule__XPackage__AnnotationsAssignment_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getAnnotationsAssignment_1()); 
            }
            // InternalXcore.g:4169:2: ( 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:4169:3: rule__XPackage__AnnotationsAssignment_1
            	    {
            	    pushFollow(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:4177: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:4181:1: ( rule__XPackage__Group__2__Impl rule__XPackage__Group__3 )
            // InternalXcore.g:4182:2: rule__XPackage__Group__2__Impl rule__XPackage__Group__3
            {
            pushFollow(FOLLOW_6);
            rule__XPackage__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:4189:1: rule__XPackage__Group__2__Impl : ( 'package' ) ;
    public final void rule__XPackage__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:4193:1: ( ( 'package' ) )
            // InternalXcore.g:4194:1: ( 'package' )
            {
            // InternalXcore.g:4194:1: ( 'package' )
            // InternalXcore.g:4195:2: 'package'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getPackageKeyword_2()); 
            }
            match(input,43,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:4204: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:4208:1: ( rule__XPackage__Group__3__Impl rule__XPackage__Group__4 )
            // InternalXcore.g:4209:2: rule__XPackage__Group__3__Impl rule__XPackage__Group__4
            {
            pushFollow(FOLLOW_7);
            rule__XPackage__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:4216: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:4220:1: ( ( ( rule__XPackage__NameAssignment_3 ) ) )
            // InternalXcore.g:4221:1: ( ( rule__XPackage__NameAssignment_3 ) )
            {
            // InternalXcore.g:4221:1: ( ( rule__XPackage__NameAssignment_3 ) )
            // InternalXcore.g:4222:2: ( rule__XPackage__NameAssignment_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getNameAssignment_3()); 
            }
            // InternalXcore.g:4223:2: ( rule__XPackage__NameAssignment_3 )
            // InternalXcore.g:4223:3: rule__XPackage__NameAssignment_3
            {
            pushFollow(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:4231: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:4235:1: ( rule__XPackage__Group__4__Impl rule__XPackage__Group__5 )
            // InternalXcore.g:4236:2: rule__XPackage__Group__4__Impl rule__XPackage__Group__5
            {
            pushFollow(FOLLOW_7);
            rule__XPackage__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:4243: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:4247:1: ( ( ( rule__XPackage__ImportDirectivesAssignment_4 )* ) )
            // InternalXcore.g:4248:1: ( ( rule__XPackage__ImportDirectivesAssignment_4 )* )
            {
            // InternalXcore.g:4248:1: ( ( rule__XPackage__ImportDirectivesAssignment_4 )* )
            // InternalXcore.g:4249:2: ( rule__XPackage__ImportDirectivesAssignment_4 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getImportDirectivesAssignment_4()); 
            }
            // InternalXcore.g:4250:2: ( 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:4250:3: rule__XPackage__ImportDirectivesAssignment_4
            	    {
            	    pushFollow(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:4258: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:4262:1: ( rule__XPackage__Group__5__Impl rule__XPackage__Group__6 )
            // InternalXcore.g:4263:2: rule__XPackage__Group__5__Impl rule__XPackage__Group__6
            {
            pushFollow(FOLLOW_7);
            rule__XPackage__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:4270: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:4274:1: ( ( ( rule__XPackage__AnnotationDirectivesAssignment_5 )* ) )
            // InternalXcore.g:4275:1: ( ( rule__XPackage__AnnotationDirectivesAssignment_5 )* )
            {
            // InternalXcore.g:4275:1: ( ( rule__XPackage__AnnotationDirectivesAssignment_5 )* )
            // InternalXcore.g:4276:2: ( rule__XPackage__AnnotationDirectivesAssignment_5 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getAnnotationDirectivesAssignment_5()); 
            }
            // InternalXcore.g:4277:2: ( 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:4277:3: rule__XPackage__AnnotationDirectivesAssignment_5
            	    {
            	    pushFollow(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:4285: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:4289:1: ( rule__XPackage__Group__6__Impl )
            // InternalXcore.g:4290:2: rule__XPackage__Group__6__Impl
            {
            pushFollow(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:4296: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:4300:1: ( ( ( rule__XPackage__ClassifiersAssignment_6 )* ) )
            // InternalXcore.g:4301:1: ( ( rule__XPackage__ClassifiersAssignment_6 )* )
            {
            // InternalXcore.g:4301:1: ( ( rule__XPackage__ClassifiersAssignment_6 )* )
            // InternalXcore.g:4302:2: ( rule__XPackage__ClassifiersAssignment_6 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getClassifiersAssignment_6()); 
            }
            // InternalXcore.g:4303:2: ( 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:4303:3: rule__XPackage__ClassifiersAssignment_6
            	    {
            	    pushFollow(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:4312: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:4316:1: ( rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 )
            // InternalXcore.g:4317:2: rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1
            {
            pushFollow(FOLLOW_11);
            rule__XAnnotation__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:4324:1: rule__XAnnotation__Group__0__Impl : ( '@' ) ;
    public final void rule__XAnnotation__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:4328:1: ( ( '@' ) )
            // InternalXcore.g:4329:1: ( '@' )
            {
            // InternalXcore.g:4329:1: ( '@' )
            // InternalXcore.g:4330:2: '@'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_0()); 
            }
            match(input,84,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:4339: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:4343:1: ( rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 )
            // InternalXcore.g:4344:2: rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2
            {
            pushFollow(FOLLOW_12);
            rule__XAnnotation__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:4351: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:4355:1: ( ( ( rule__XAnnotation__SourceAssignment_1 ) ) )
            // InternalXcore.g:4356:1: ( ( rule__XAnnotation__SourceAssignment_1 ) )
            {
            // InternalXcore.g:4356:1: ( ( rule__XAnnotation__SourceAssignment_1 ) )
            // InternalXcore.g:4357:2: ( rule__XAnnotation__SourceAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getSourceAssignment_1()); 
            }
            // InternalXcore.g:4358:2: ( rule__XAnnotation__SourceAssignment_1 )
            // InternalXcore.g:4358:3: rule__XAnnotation__SourceAssignment_1
            {
            pushFollow(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:4366: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:4370:1: ( rule__XAnnotation__Group__2__Impl )
            // InternalXcore.g:4371:2: rule__XAnnotation__Group__2__Impl
            {
            pushFollow(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:4377: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:4381:1: ( ( ( rule__XAnnotation__Group_2__0 )? ) )
            // InternalXcore.g:4382:1: ( ( rule__XAnnotation__Group_2__0 )? )
            {
            // InternalXcore.g:4382:1: ( ( rule__XAnnotation__Group_2__0 )? )
            // InternalXcore.g:4383:2: ( rule__XAnnotation__Group_2__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getGroup_2()); 
            }
            // InternalXcore.g:4384:2: ( 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:4384:3: rule__XAnnotation__Group_2__0
                    {
                    pushFollow(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:4393: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:4397:1: ( rule__XAnnotation__Group_2__0__Impl rule__XAnnotation__Group_2__1 )
            // InternalXcore.g:4398:2: rule__XAnnotation__Group_2__0__Impl rule__XAnnotation__Group_2__1
            {
            pushFollow(FOLLOW_6);
            rule__XAnnotation__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:4405:1: rule__XAnnotation__Group_2__0__Impl : ( '(' ) ;
    public final void rule__XAnnotation__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:4409:1: ( ( '(' ) )
            // InternalXcore.g:4410:1: ( '(' )
            {
            // InternalXcore.g:4410:1: ( '(' )
            // InternalXcore.g:4411:2: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_2_0()); 
            }
            match(input,85,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:4420: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:4424:1: ( rule__XAnnotation__Group_2__1__Impl rule__XAnnotation__Group_2__2 )
            // InternalXcore.g:4425:2: rule__XAnnotation__Group_2__1__Impl rule__XAnnotation__Group_2__2
            {
            pushFollow(FOLLOW_13);
            rule__XAnnotation__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:4432: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:4436:1: ( ( ( rule__XAnnotation__DetailsAssignment_2_1 ) ) )
            // InternalXcore.g:4437:1: ( ( rule__XAnnotation__DetailsAssignment_2_1 ) )
            {
            // InternalXcore.g:4437:1: ( ( rule__XAnnotation__DetailsAssignment_2_1 ) )
            // InternalXcore.g:4438:2: ( rule__XAnnotation__DetailsAssignment_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getDetailsAssignment_2_1()); 
            }
            // InternalXcore.g:4439:2: ( rule__XAnnotation__DetailsAssignment_2_1 )
            // InternalXcore.g:4439:3: rule__XAnnotation__DetailsAssignment_2_1
            {
            pushFollow(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:4447: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:4451:1: ( rule__XAnnotation__Group_2__2__Impl rule__XAnnotation__Group_2__3 )
            // InternalXcore.g:4452:2: rule__XAnnotation__Group_2__2__Impl rule__XAnnotation__Group_2__3
            {
            pushFollow(FOLLOW_13);
            rule__XAnnotation__Group_2__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:4459: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:4463:1: ( ( ( rule__XAnnotation__Group_2_2__0 )* ) )
            // InternalXcore.g:4464:1: ( ( rule__XAnnotation__Group_2_2__0 )* )
            {
            // InternalXcore.g:4464:1: ( ( rule__XAnnotation__Group_2_2__0 )* )
            // InternalXcore.g:4465:2: ( rule__XAnnotation__Group_2_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getGroup_2_2()); 
            }
            // InternalXcore.g:4466:2: ( 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:4466:3: rule__XAnnotation__Group_2_2__0
            	    {
            	    pushFollow(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:4474: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:4478:1: ( rule__XAnnotation__Group_2__3__Impl )
            // InternalXcore.g:4479:2: rule__XAnnotation__Group_2__3__Impl
            {
            pushFollow(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:4485:1: rule__XAnnotation__Group_2__3__Impl : ( ')' ) ;
    public final void rule__XAnnotation__Group_2__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:4489:1: ( ( ')' ) )
            // InternalXcore.g:4490:1: ( ')' )
            {
            // InternalXcore.g:4490:1: ( ')' )
            // InternalXcore.g:4491:2: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_2_3()); 
            }
            match(input,86,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:4501: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:4505:1: ( rule__XAnnotation__Group_2_2__0__Impl rule__XAnnotation__Group_2_2__1 )
            // InternalXcore.g:4506:2: rule__XAnnotation__Group_2_2__0__Impl rule__XAnnotation__Group_2_2__1
            {
            pushFollow(FOLLOW_6);
            rule__XAnnotation__Group_2_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:4513: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:4517:1: ( ( ',' ) )
            // InternalXcore.g:4518:1: ( ',' )
            {
            // InternalXcore.g:4518:1: ( ',' )
            // InternalXcore.g:4519:2: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getCommaKeyword_2_2_0()); 
            }
            match(input,87,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:4528: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:4532:1: ( rule__XAnnotation__Group_2_2__1__Impl )
            // InternalXcore.g:4533:2: rule__XAnnotation__Group_2_2__1__Impl
            {
            pushFollow(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:4539: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:4543:1: ( ( ( rule__XAnnotation__DetailsAssignment_2_2_1 ) ) )
            // InternalXcore.g:4544:1: ( ( rule__XAnnotation__DetailsAssignment_2_2_1 ) )
            {
            // InternalXcore.g:4544:1: ( ( rule__XAnnotation__DetailsAssignment_2_2_1 ) )
            // InternalXcore.g:4545:2: ( rule__XAnnotation__DetailsAssignment_2_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getDetailsAssignment_2_2_1()); 
            }
            // InternalXcore.g:4546:2: ( rule__XAnnotation__DetailsAssignment_2_2_1 )
            // InternalXcore.g:4546:3: rule__XAnnotation__DetailsAssignment_2_2_1
            {
            pushFollow(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:4555: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:4559:1: ( rule__XStringToStringMapEntry__Group__0__Impl rule__XStringToStringMapEntry__Group__1 )
            // InternalXcore.g:4560:2: rule__XStringToStringMapEntry__Group__0__Impl rule__XStringToStringMapEntry__Group__1
            {
            pushFollow(FOLLOW_15);
            rule__XStringToStringMapEntry__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:4567: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:4571:1: ( ( ( rule__XStringToStringMapEntry__KeyAssignment_0 ) ) )
            // InternalXcore.g:4572:1: ( ( rule__XStringToStringMapEntry__KeyAssignment_0 ) )
            {
            // InternalXcore.g:4572:1: ( ( rule__XStringToStringMapEntry__KeyAssignment_0 ) )
            // InternalXcore.g:4573:2: ( rule__XStringToStringMapEntry__KeyAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXStringToStringMapEntryAccess().getKeyAssignment_0()); 
            }
            // InternalXcore.g:4574:2: ( rule__XStringToStringMapEntry__KeyAssignment_0 )
            // InternalXcore.g:4574:3: rule__XStringToStringMapEntry__KeyAssignment_0
            {
            pushFollow(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:4582: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:4586:1: ( rule__XStringToStringMapEntry__Group__1__Impl rule__XStringToStringMapEntry__Group__2 )
            // InternalXcore.g:4587:2: rule__XStringToStringMapEntry__Group__1__Impl rule__XStringToStringMapEntry__Group__2
            {
            pushFollow(FOLLOW_16);
            rule__XStringToStringMapEntry__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:4594:1: rule__XStringToStringMapEntry__Group__1__Impl : ( '=' ) ;
    public final void rule__XStringToStringMapEntry__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:4598:1: ( ( '=' ) )
            // InternalXcore.g:4599:1: ( '=' )
            {
            // InternalXcore.g:4599:1: ( '=' )
            // InternalXcore.g:4600:2: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXStringToStringMapEntryAccess().getEqualsSignKeyword_1()); 
            }
            match(input,13,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:4609: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:4613:1: ( rule__XStringToStringMapEntry__Group__2__Impl )
            // InternalXcore.g:4614:2: rule__XStringToStringMapEntry__Group__2__Impl
            {
            pushFollow(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:4620: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:4624:1: ( ( ( rule__XStringToStringMapEntry__ValueAssignment_2 ) ) )
            // InternalXcore.g:4625:1: ( ( rule__XStringToStringMapEntry__ValueAssignment_2 ) )
            {
            // InternalXcore.g:4625:1: ( ( rule__XStringToStringMapEntry__ValueAssignment_2 ) )
            // InternalXcore.g:4626:2: ( rule__XStringToStringMapEntry__ValueAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXStringToStringMapEntryAccess().getValueAssignment_2()); 
            }
            // InternalXcore.g:4627:2: ( rule__XStringToStringMapEntry__ValueAssignment_2 )
            // InternalXcore.g:4627:3: rule__XStringToStringMapEntry__ValueAssignment_2
            {
            pushFollow(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:4636: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:4640:1: ( rule__XImportDirective__Group__0__Impl rule__XImportDirective__Group__1 )
            // InternalXcore.g:4641:2: rule__XImportDirective__Group__0__Impl rule__XImportDirective__Group__1
            {
            pushFollow(FOLLOW_17);
            rule__XImportDirective__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:4648:1: rule__XImportDirective__Group__0__Impl : ( () ) ;
    public final void rule__XImportDirective__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:4652:1: ( ( () ) )
            // InternalXcore.g:4653:1: ( () )
            {
            // InternalXcore.g:4653:1: ( () )
            // InternalXcore.g:4654:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDirectiveAccess().getXImportDirectiveAction_0()); 
            }
            // InternalXcore.g:4655:2: ()
            // InternalXcore.g:4655:3: 
            {
            }

            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:4663: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:4667:1: ( rule__XImportDirective__Group__1__Impl rule__XImportDirective__Group__2 )
            // InternalXcore.g:4668:2: rule__XImportDirective__Group__1__Impl rule__XImportDirective__Group__2
            {
            pushFollow(FOLLOW_6);
            rule__XImportDirective__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:4675:1: rule__XImportDirective__Group__1__Impl : ( 'import' ) ;
    public final void rule__XImportDirective__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:4679:1: ( ( 'import' ) )
            // InternalXcore.g:4680:1: ( 'import' )
            {
            // InternalXcore.g:4680:1: ( 'import' )
            // InternalXcore.g:4681:2: 'import'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDirectiveAccess().getImportKeyword_1()); 
            }
            match(input,37,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:4690: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:4694:1: ( rule__XImportDirective__Group__2__Impl )
            // InternalXcore.g:4695:2: rule__XImportDirective__Group__2__Impl
            {
            pushFollow(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:4701: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:4705:1: ( ( ( rule__XImportDirective__Alternatives_2 ) ) )
            // InternalXcore.g:4706:1: ( ( rule__XImportDirective__Alternatives_2 ) )
            {
            // InternalXcore.g:4706:1: ( ( rule__XImportDirective__Alternatives_2 ) )
            // InternalXcore.g:4707:2: ( rule__XImportDirective__Alternatives_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDirectiveAccess().getAlternatives_2()); 
            }
            // InternalXcore.g:4708:2: ( rule__XImportDirective__Alternatives_2 )
            // InternalXcore.g:4708:3: rule__XImportDirective__Alternatives_2
            {
            pushFollow(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:4717: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:4721:1: ( rule__XAnnotationDirective__Group__0__Impl rule__XAnnotationDirective__Group__1 )
            // InternalXcore.g:4722:2: rule__XAnnotationDirective__Group__0__Impl rule__XAnnotationDirective__Group__1
            {
            pushFollow(FOLLOW_18);
            rule__XAnnotationDirective__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:4729: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:4733:1: ( ( ( rule__XAnnotationDirective__Group_0__0 ) ) )
            // InternalXcore.g:4734:1: ( ( rule__XAnnotationDirective__Group_0__0 ) )
            {
            // InternalXcore.g:4734:1: ( ( rule__XAnnotationDirective__Group_0__0 ) )
            // InternalXcore.g:4735:2: ( rule__XAnnotationDirective__Group_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationDirectiveAccess().getGroup_0()); 
            }
            // InternalXcore.g:4736:2: ( rule__XAnnotationDirective__Group_0__0 )
            // InternalXcore.g:4736:3: rule__XAnnotationDirective__Group_0__0
            {
            pushFollow(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:4744: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:4748:1: ( rule__XAnnotationDirective__Group__1__Impl rule__XAnnotationDirective__Group__2 )
            // InternalXcore.g:4749:2: rule__XAnnotationDirective__Group__1__Impl rule__XAnnotationDirective__Group__2
            {
            pushFollow(FOLLOW_6);
            rule__XAnnotationDirective__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:4756:1: rule__XAnnotationDirective__Group__1__Impl : ( 'as' ) ;
    public final void rule__XAnnotationDirective__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:4760:1: ( ( 'as' ) )
            // InternalXcore.g:4761:1: ( 'as' )
            {
            // InternalXcore.g:4761:1: ( 'as' )
            // InternalXcore.g:4762:2: 'as'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationDirectiveAccess().getAsKeyword_1()); 
            }
            match(input,26,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:4771: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:4775:1: ( rule__XAnnotationDirective__Group__2__Impl )
            // InternalXcore.g:4776:2: rule__XAnnotationDirective__Group__2__Impl
            {
            pushFollow(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:4782: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:4786:1: ( ( ( rule__XAnnotationDirective__NameAssignment_2 ) ) )
            // InternalXcore.g:4787:1: ( ( rule__XAnnotationDirective__NameAssignment_2 ) )
            {
            // InternalXcore.g:4787:1: ( ( rule__XAnnotationDirective__NameAssignment_2 ) )
            // InternalXcore.g:4788:2: ( rule__XAnnotationDirective__NameAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationDirectiveAccess().getNameAssignment_2()); 
            }
            // InternalXcore.g:4789:2: ( rule__XAnnotationDirective__NameAssignment_2 )
            // InternalXcore.g:4789:3: rule__XAnnotationDirective__NameAssignment_2
            {
            pushFollow(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:4798: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:4802:1: ( rule__XAnnotationDirective__Group_0__0__Impl )
            // InternalXcore.g:4803:2: rule__XAnnotationDirective__Group_0__0__Impl
            {
            pushFollow(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:4809: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:4813:1: ( ( ( rule__XAnnotationDirective__Group_0_0__0 ) ) )
            // InternalXcore.g:4814:1: ( ( rule__XAnnotationDirective__Group_0_0__0 ) )
            {
            // InternalXcore.g:4814:1: ( ( rule__XAnnotationDirective__Group_0_0__0 ) )
            // InternalXcore.g:4815:2: ( rule__XAnnotationDirective__Group_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationDirectiveAccess().getGroup_0_0()); 
            }
            // InternalXcore.g:4816:2: ( rule__XAnnotationDirective__Group_0_0__0 )
            // InternalXcore.g:4816:3: rule__XAnnotationDirective__Group_0_0__0
            {
            pushFollow(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:4825: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:4829:1: ( rule__XAnnotationDirective__Group_0_0__0__Impl rule__XAnnotationDirective__Group_0_0__1 )
            // InternalXcore.g:4830:2: rule__XAnnotationDirective__Group_0_0__0__Impl rule__XAnnotationDirective__Group_0_0__1
            {
            pushFollow(FOLLOW_16);
            rule__XAnnotationDirective__Group_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:4837: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:4841:1: ( ( 'annotation' ) )
            // InternalXcore.g:4842:1: ( 'annotation' )
            {
            // InternalXcore.g:4842:1: ( 'annotation' )
            // InternalXcore.g:4843:2: 'annotation'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationDirectiveAccess().getAnnotationKeyword_0_0_0()); 
            }
            match(input,25,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:4852: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:4856:1: ( rule__XAnnotationDirective__Group_0_0__1__Impl )
            // InternalXcore.g:4857:2: rule__XAnnotationDirective__Group_0_0__1__Impl
            {
            pushFollow(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:4863: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:4867:1: ( ( ( rule__XAnnotationDirective__SourceURIAssignment_0_0_1 ) ) )
            // InternalXcore.g:4868:1: ( ( rule__XAnnotationDirective__SourceURIAssignment_0_0_1 ) )
            {
            // InternalXcore.g:4868:1: ( ( rule__XAnnotationDirective__SourceURIAssignment_0_0_1 ) )
            // InternalXcore.g:4869:2: ( rule__XAnnotationDirective__SourceURIAssignment_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationDirectiveAccess().getSourceURIAssignment_0_0_1()); 
            }
            // InternalXcore.g:4870:2: ( rule__XAnnotationDirective__SourceURIAssignment_0_0_1 )
            // InternalXcore.g:4870:3: rule__XAnnotationDirective__SourceURIAssignment_0_0_1
            {
            pushFollow(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:4879: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:4883:1: ( rule__XDataType__Group__0__Impl rule__XDataType__Group__1 )
            // InternalXcore.g:4884:2: rule__XDataType__Group__0__Impl rule__XDataType__Group__1
            {
            pushFollow(FOLLOW_19);
            rule__XDataType__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:4891: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:4895:1: ( ( ( rule__XDataType__AnnotationsAssignment_0 )* ) )
            // InternalXcore.g:4896:1: ( ( rule__XDataType__AnnotationsAssignment_0 )* )
            {
            // InternalXcore.g:4896:1: ( ( rule__XDataType__AnnotationsAssignment_0 )* )
            // InternalXcore.g:4897:2: ( rule__XDataType__AnnotationsAssignment_0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getAnnotationsAssignment_0()); 
            }
            // InternalXcore.g:4898:2: ( 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:4898:3: rule__XDataType__AnnotationsAssignment_0
            	    {
            	    pushFollow(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:4906: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:4910:1: ( rule__XDataType__Group__1__Impl rule__XDataType__Group__2 )
            // InternalXcore.g:4911:2: rule__XDataType__Group__1__Impl rule__XDataType__Group__2
            {
            pushFollow(FOLLOW_20);
            rule__XDataType__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:4918:1: rule__XDataType__Group__1__Impl : ( 'type' ) ;
    public final void rule__XDataType__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:4922:1: ( ( 'type' ) )
            // InternalXcore.g:4923:1: ( 'type' )
            {
            // InternalXcore.g:4923:1: ( 'type' )
            // InternalXcore.g:4924:2: 'type'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getTypeKeyword_1()); 
            }
            match(input,88,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:4933: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:4937:1: ( rule__XDataType__Group__2__Impl rule__XDataType__Group__3 )
            // InternalXcore.g:4938:2: rule__XDataType__Group__2__Impl rule__XDataType__Group__3
            {
            pushFollow(FOLLOW_21);
            rule__XDataType__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:4945: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:4949:1: ( ( ( rule__XDataType__NameAssignment_2 ) ) )
            // InternalXcore.g:4950:1: ( ( rule__XDataType__NameAssignment_2 ) )
            {
            // InternalXcore.g:4950:1: ( ( rule__XDataType__NameAssignment_2 ) )
            // InternalXcore.g:4951:2: ( rule__XDataType__NameAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getNameAssignment_2()); 
            }
            // InternalXcore.g:4952:2: ( rule__XDataType__NameAssignment_2 )
            // InternalXcore.g:4952:3: rule__XDataType__NameAssignment_2
            {
            pushFollow(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:4960: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:4964:1: ( rule__XDataType__Group__3__Impl rule__XDataType__Group__4 )
            // InternalXcore.g:4965:2: rule__XDataType__Group__3__Impl rule__XDataType__Group__4
            {
            pushFollow(FOLLOW_21);
            rule__XDataType__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:4972: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:4976:1: ( ( ( rule__XDataType__Group_3__0 )? ) )
            // InternalXcore.g:4977:1: ( ( rule__XDataType__Group_3__0 )? )
            {
            // InternalXcore.g:4977:1: ( ( rule__XDataType__Group_3__0 )? )
            // InternalXcore.g:4978:2: ( rule__XDataType__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getGroup_3()); 
            }
            // InternalXcore.g:4979:2: ( 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:4979:3: rule__XDataType__Group_3__0
                    {
                    pushFollow(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:4987: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:4991:1: ( rule__XDataType__Group__4__Impl rule__XDataType__Group__5 )
            // InternalXcore.g:4992:2: rule__XDataType__Group__4__Impl rule__XDataType__Group__5
            {
            pushFollow(FOLLOW_22);
            rule__XDataType__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:4999:1: rule__XDataType__Group__4__Impl : ( 'wraps' ) ;
    public final void rule__XDataType__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:5003:1: ( ( 'wraps' ) )
            // InternalXcore.g:5004:1: ( 'wraps' )
            {
            // InternalXcore.g:5004:1: ( 'wraps' )
            // InternalXcore.g:5005:2: 'wraps'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getWrapsKeyword_4()); 
            }
            match(input,54,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:5014: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:5018:1: ( rule__XDataType__Group__5__Impl rule__XDataType__Group__6 )
            // InternalXcore.g:5019:2: rule__XDataType__Group__5__Impl rule__XDataType__Group__6
            {
            pushFollow(FOLLOW_23);
            rule__XDataType__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5026: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:5030:1: ( ( ( rule__XDataType__InstanceTypeAssignment_5 ) ) )
            // InternalXcore.g:5031:1: ( ( rule__XDataType__InstanceTypeAssignment_5 ) )
            {
            // InternalXcore.g:5031:1: ( ( rule__XDataType__InstanceTypeAssignment_5 ) )
            // InternalXcore.g:5032:2: ( rule__XDataType__InstanceTypeAssignment_5 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getInstanceTypeAssignment_5()); 
            }
            // InternalXcore.g:5033:2: ( rule__XDataType__InstanceTypeAssignment_5 )
            // InternalXcore.g:5033:3: rule__XDataType__InstanceTypeAssignment_5
            {
            pushFollow(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:5041: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:5045:1: ( rule__XDataType__Group__6__Impl )
            // InternalXcore.g:5046:2: rule__XDataType__Group__6__Impl
            {
            pushFollow(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:5052: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:5056:1: ( ( ( rule__XDataType__UnorderedGroup_6 ) ) )
            // InternalXcore.g:5057:1: ( ( rule__XDataType__UnorderedGroup_6 ) )
            {
            // InternalXcore.g:5057:1: ( ( rule__XDataType__UnorderedGroup_6 ) )
            // InternalXcore.g:5058:2: ( rule__XDataType__UnorderedGroup_6 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getUnorderedGroup_6()); 
            }
            // InternalXcore.g:5059:2: ( rule__XDataType__UnorderedGroup_6 )
            // InternalXcore.g:5059:3: rule__XDataType__UnorderedGroup_6
            {
            pushFollow(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:5068: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:5072:1: ( rule__XDataType__Group_3__0__Impl rule__XDataType__Group_3__1 )
            // InternalXcore.g:5073:2: rule__XDataType__Group_3__0__Impl rule__XDataType__Group_3__1
            {
            pushFollow(FOLLOW_24);
            rule__XDataType__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5080:1: rule__XDataType__Group_3__0__Impl : ( '<' ) ;
    public final void rule__XDataType__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:5084:1: ( ( '<' ) )
            // InternalXcore.g:5085:1: ( '<' )
            {
            // InternalXcore.g:5085:1: ( '<' )
            // InternalXcore.g:5086:2: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getLessThanSignKeyword_3_0()); 
            }
            match(input,66,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:5095: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:5099:1: ( rule__XDataType__Group_3__1__Impl rule__XDataType__Group_3__2 )
            // InternalXcore.g:5100:2: rule__XDataType__Group_3__1__Impl rule__XDataType__Group_3__2
            {
            pushFollow(FOLLOW_25);
            rule__XDataType__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5107: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:5111:1: ( ( ( rule__XDataType__TypeParametersAssignment_3_1 ) ) )
            // InternalXcore.g:5112:1: ( ( rule__XDataType__TypeParametersAssignment_3_1 ) )
            {
            // InternalXcore.g:5112:1: ( ( rule__XDataType__TypeParametersAssignment_3_1 ) )
            // InternalXcore.g:5113:2: ( rule__XDataType__TypeParametersAssignment_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getTypeParametersAssignment_3_1()); 
            }
            // InternalXcore.g:5114:2: ( rule__XDataType__TypeParametersAssignment_3_1 )
            // InternalXcore.g:5114:3: rule__XDataType__TypeParametersAssignment_3_1
            {
            pushFollow(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:5122: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:5126:1: ( rule__XDataType__Group_3__2__Impl rule__XDataType__Group_3__3 )
            // InternalXcore.g:5127:2: rule__XDataType__Group_3__2__Impl rule__XDataType__Group_3__3
            {
            pushFollow(FOLLOW_25);
            rule__XDataType__Group_3__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5134: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:5138:1: ( ( ( rule__XDataType__Group_3_2__0 )* ) )
            // InternalXcore.g:5139:1: ( ( rule__XDataType__Group_3_2__0 )* )
            {
            // InternalXcore.g:5139:1: ( ( rule__XDataType__Group_3_2__0 )* )
            // InternalXcore.g:5140:2: ( rule__XDataType__Group_3_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getGroup_3_2()); 
            }
            // InternalXcore.g:5141:2: ( 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:5141:3: rule__XDataType__Group_3_2__0
            	    {
            	    pushFollow(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:5149: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:5153:1: ( rule__XDataType__Group_3__3__Impl )
            // InternalXcore.g:5154:2: rule__XDataType__Group_3__3__Impl
            {
            pushFollow(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:5160:1: rule__XDataType__Group_3__3__Impl : ( '>' ) ;
    public final void rule__XDataType__Group_3__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:5164:1: ( ( '>' ) )
            // InternalXcore.g:5165:1: ( '>' )
            {
            // InternalXcore.g:5165:1: ( '>' )
            // InternalXcore.g:5166:2: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getGreaterThanSignKeyword_3_3()); 
            }
            match(input,65,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:5176: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:5180:1: ( rule__XDataType__Group_3_2__0__Impl rule__XDataType__Group_3_2__1 )
            // InternalXcore.g:5181:2: rule__XDataType__Group_3_2__0__Impl rule__XDataType__Group_3_2__1
            {
            pushFollow(FOLLOW_24);
            rule__XDataType__Group_3_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5188: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:5192:1: ( ( ',' ) )
            // InternalXcore.g:5193:1: ( ',' )
            {
            // InternalXcore.g:5193:1: ( ',' )
            // InternalXcore.g:5194:2: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getCommaKeyword_3_2_0()); 
            }
            match(input,87,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:5203: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:5207:1: ( rule__XDataType__Group_3_2__1__Impl )
            // InternalXcore.g:5208:2: rule__XDataType__Group_3_2__1__Impl
            {
            pushFollow(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:5214: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:5218:1: ( ( ( rule__XDataType__TypeParametersAssignment_3_2_1 ) ) )
            // InternalXcore.g:5219:1: ( ( rule__XDataType__TypeParametersAssignment_3_2_1 ) )
            {
            // InternalXcore.g:5219:1: ( ( rule__XDataType__TypeParametersAssignment_3_2_1 ) )
            // InternalXcore.g:5220:2: ( rule__XDataType__TypeParametersAssignment_3_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getTypeParametersAssignment_3_2_1()); 
            }
            // InternalXcore.g:5221:2: ( rule__XDataType__TypeParametersAssignment_3_2_1 )
            // InternalXcore.g:5221:3: rule__XDataType__TypeParametersAssignment_3_2_1
            {
            pushFollow(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:5230: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:5234:1: ( rule__XDataType__Group_6_0__0__Impl rule__XDataType__Group_6_0__1 )
            // InternalXcore.g:5235:2: rule__XDataType__Group_6_0__0__Impl rule__XDataType__Group_6_0__1
            {
            pushFollow(FOLLOW_26);
            rule__XDataType__Group_6_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5242: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:5246:1: ( ( ( rule__XDataType__SerializableAssignment_6_0_0 ) ) )
            // InternalXcore.g:5247:1: ( ( rule__XDataType__SerializableAssignment_6_0_0 ) )
            {
            // InternalXcore.g:5247:1: ( ( rule__XDataType__SerializableAssignment_6_0_0 ) )
            // InternalXcore.g:5248:2: ( rule__XDataType__SerializableAssignment_6_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getSerializableAssignment_6_0_0()); 
            }
            // InternalXcore.g:5249:2: ( rule__XDataType__SerializableAssignment_6_0_0 )
            // InternalXcore.g:5249:3: rule__XDataType__SerializableAssignment_6_0_0
            {
            pushFollow(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:5257: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:5261:1: ( rule__XDataType__Group_6_0__1__Impl )
            // InternalXcore.g:5262:2: rule__XDataType__Group_6_0__1__Impl
            {
            pushFollow(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:5268: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:5272:1: ( ( ( rule__XDataType__CreateBodyAssignment_6_0_1 ) ) )
            // InternalXcore.g:5273:1: ( ( rule__XDataType__CreateBodyAssignment_6_0_1 ) )
            {
            // InternalXcore.g:5273:1: ( ( rule__XDataType__CreateBodyAssignment_6_0_1 ) )
            // InternalXcore.g:5274:2: ( rule__XDataType__CreateBodyAssignment_6_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getCreateBodyAssignment_6_0_1()); 
            }
            // InternalXcore.g:5275:2: ( rule__XDataType__CreateBodyAssignment_6_0_1 )
            // InternalXcore.g:5275:3: rule__XDataType__CreateBodyAssignment_6_0_1
            {
            pushFollow(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:5284: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:5288:1: ( rule__XDataType__Group_6_1__0__Impl rule__XDataType__Group_6_1__1 )
            // InternalXcore.g:5289:2: rule__XDataType__Group_6_1__0__Impl rule__XDataType__Group_6_1__1
            {
            pushFollow(FOLLOW_26);
            rule__XDataType__Group_6_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5296: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:5300:1: ( ( 'convert' ) )
            // InternalXcore.g:5301:1: ( 'convert' )
            {
            // InternalXcore.g:5301:1: ( 'convert' )
            // InternalXcore.g:5302:2: 'convert'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getConvertKeyword_6_1_0()); 
            }
            match(input,30,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:5311: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:5315:1: ( rule__XDataType__Group_6_1__1__Impl )
            // InternalXcore.g:5316:2: rule__XDataType__Group_6_1__1__Impl
            {
            pushFollow(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:5322: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:5326:1: ( ( ( rule__XDataType__ConvertBodyAssignment_6_1_1 ) ) )
            // InternalXcore.g:5327:1: ( ( rule__XDataType__ConvertBodyAssignment_6_1_1 ) )
            {
            // InternalXcore.g:5327:1: ( ( rule__XDataType__ConvertBodyAssignment_6_1_1 ) )
            // InternalXcore.g:5328:2: ( rule__XDataType__ConvertBodyAssignment_6_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getConvertBodyAssignment_6_1_1()); 
            }
            // InternalXcore.g:5329:2: ( rule__XDataType__ConvertBodyAssignment_6_1_1 )
            // InternalXcore.g:5329:3: rule__XDataType__ConvertBodyAssignment_6_1_1
            {
            pushFollow(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:5338: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:5342:1: ( rule__XEnum__Group__0__Impl rule__XEnum__Group__1 )
            // InternalXcore.g:5343:2: rule__XEnum__Group__0__Impl rule__XEnum__Group__1
            {
            pushFollow(FOLLOW_27);
            rule__XEnum__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5350: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:5354:1: ( ( ( rule__XEnum__AnnotationsAssignment_0 )* ) )
            // InternalXcore.g:5355:1: ( ( rule__XEnum__AnnotationsAssignment_0 )* )
            {
            // InternalXcore.g:5355:1: ( ( rule__XEnum__AnnotationsAssignment_0 )* )
            // InternalXcore.g:5356:2: ( rule__XEnum__AnnotationsAssignment_0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getAnnotationsAssignment_0()); 
            }
            // InternalXcore.g:5357:2: ( 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:5357:3: rule__XEnum__AnnotationsAssignment_0
            	    {
            	    pushFollow(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:5365: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:5369:1: ( rule__XEnum__Group__1__Impl rule__XEnum__Group__2 )
            // InternalXcore.g:5370:2: rule__XEnum__Group__1__Impl rule__XEnum__Group__2
            {
            pushFollow(FOLLOW_20);
            rule__XEnum__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5377:1: rule__XEnum__Group__1__Impl : ( 'enum' ) ;
    public final void rule__XEnum__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:5381:1: ( ( 'enum' ) )
            // InternalXcore.g:5382:1: ( 'enum' )
            {
            // InternalXcore.g:5382:1: ( 'enum' )
            // InternalXcore.g:5383:2: 'enum'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getEnumKeyword_1()); 
            }
            match(input,33,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:5392: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:5396:1: ( rule__XEnum__Group__2__Impl rule__XEnum__Group__3 )
            // InternalXcore.g:5397:2: rule__XEnum__Group__2__Impl rule__XEnum__Group__3
            {
            pushFollow(FOLLOW_26);
            rule__XEnum__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5404: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:5408:1: ( ( ( rule__XEnum__NameAssignment_2 ) ) )
            // InternalXcore.g:5409:1: ( ( rule__XEnum__NameAssignment_2 ) )
            {
            // InternalXcore.g:5409:1: ( ( rule__XEnum__NameAssignment_2 ) )
            // InternalXcore.g:5410:2: ( rule__XEnum__NameAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getNameAssignment_2()); 
            }
            // InternalXcore.g:5411:2: ( rule__XEnum__NameAssignment_2 )
            // InternalXcore.g:5411:3: rule__XEnum__NameAssignment_2
            {
            pushFollow(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:5419: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:5423:1: ( rule__XEnum__Group__3__Impl rule__XEnum__Group__4 )
            // InternalXcore.g:5424:2: rule__XEnum__Group__3__Impl rule__XEnum__Group__4
            {
            pushFollow(FOLLOW_28);
            rule__XEnum__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5431:1: rule__XEnum__Group__3__Impl : ( '{' ) ;
    public final void rule__XEnum__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:5435:1: ( ( '{' ) )
            // InternalXcore.g:5436:1: ( '{' )
            {
            // InternalXcore.g:5436:1: ( '{' )
            // InternalXcore.g:5437:2: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getLeftCurlyBracketKeyword_3()); 
            }
            match(input,89,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:5446: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:5450:1: ( rule__XEnum__Group__4__Impl rule__XEnum__Group__5 )
            // InternalXcore.g:5451:2: rule__XEnum__Group__4__Impl rule__XEnum__Group__5
            {
            pushFollow(FOLLOW_28);
            rule__XEnum__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5458: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:5462:1: ( ( ( rule__XEnum__Group_4__0 )? ) )
            // InternalXcore.g:5463:1: ( ( rule__XEnum__Group_4__0 )? )
            {
            // InternalXcore.g:5463:1: ( ( rule__XEnum__Group_4__0 )? )
            // InternalXcore.g:5464:2: ( rule__XEnum__Group_4__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getGroup_4()); 
            }
            // InternalXcore.g:5465:2: ( 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:5465:3: rule__XEnum__Group_4__0
                    {
                    pushFollow(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:5473: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:5477:1: ( rule__XEnum__Group__5__Impl )
            // InternalXcore.g:5478:2: rule__XEnum__Group__5__Impl
            {
            pushFollow(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:5484:1: rule__XEnum__Group__5__Impl : ( '}' ) ;
    public final void rule__XEnum__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:5488:1: ( ( '}' ) )
            // InternalXcore.g:5489:1: ( '}' )
            {
            // InternalXcore.g:5489:1: ( '}' )
            // InternalXcore.g:5490:2: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getRightCurlyBracketKeyword_5()); 
            }
            match(input,90,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:5500: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:5504:1: ( rule__XEnum__Group_4__0__Impl rule__XEnum__Group_4__1 )
            // InternalXcore.g:5505:2: rule__XEnum__Group_4__0__Impl rule__XEnum__Group_4__1
            {
            pushFollow(FOLLOW_29);
            rule__XEnum__Group_4__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5512: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:5516:1: ( ( ( rule__XEnum__LiteralsAssignment_4_0 ) ) )
            // InternalXcore.g:5517:1: ( ( rule__XEnum__LiteralsAssignment_4_0 ) )
            {
            // InternalXcore.g:5517:1: ( ( rule__XEnum__LiteralsAssignment_4_0 ) )
            // InternalXcore.g:5518:2: ( rule__XEnum__LiteralsAssignment_4_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getLiteralsAssignment_4_0()); 
            }
            // InternalXcore.g:5519:2: ( rule__XEnum__LiteralsAssignment_4_0 )
            // InternalXcore.g:5519:3: rule__XEnum__LiteralsAssignment_4_0
            {
            pushFollow(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:5527: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:5531:1: ( rule__XEnum__Group_4__1__Impl )
            // InternalXcore.g:5532:2: rule__XEnum__Group_4__1__Impl
            {
            pushFollow(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:5538: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:5542:1: ( ( ( rule__XEnum__Group_4_1__0 )* ) )
            // InternalXcore.g:5543:1: ( ( rule__XEnum__Group_4_1__0 )* )
            {
            // InternalXcore.g:5543:1: ( ( rule__XEnum__Group_4_1__0 )* )
            // InternalXcore.g:5544:2: ( rule__XEnum__Group_4_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getGroup_4_1()); 
            }
            // InternalXcore.g:5545:2: ( 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:5545:3: rule__XEnum__Group_4_1__0
            	    {
            	    pushFollow(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:5554: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:5558:1: ( rule__XEnum__Group_4_1__0__Impl rule__XEnum__Group_4_1__1 )
            // InternalXcore.g:5559:2: rule__XEnum__Group_4_1__0__Impl rule__XEnum__Group_4_1__1
            {
            pushFollow(FOLLOW_29);
            rule__XEnum__Group_4_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5566: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:5570:1: ( ( ( ',' )? ) )
            // InternalXcore.g:5571:1: ( ( ',' )? )
            {
            // InternalXcore.g:5571:1: ( ( ',' )? )
            // InternalXcore.g:5572:2: ( ',' )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getCommaKeyword_4_1_0()); 
            }
            // InternalXcore.g:5573:2: ( ',' )?
            int alt67=2;
            int LA67_0 = input.LA(1);

            if ( (LA67_0==87) ) {
                alt67=1;
            }
            switch (alt67) {
                case 1 :
                    // InternalXcore.g:5573:3: ','
                    {
                    match(input,87,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:5581: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:5585:1: ( rule__XEnum__Group_4_1__1__Impl )
            // InternalXcore.g:5586:2: rule__XEnum__Group_4_1__1__Impl
            {
            pushFollow(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:5592: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:5596:1: ( ( ( rule__XEnum__LiteralsAssignment_4_1_1 ) ) )
            // InternalXcore.g:5597:1: ( ( rule__XEnum__LiteralsAssignment_4_1_1 ) )
            {
            // InternalXcore.g:5597:1: ( ( rule__XEnum__LiteralsAssignment_4_1_1 ) )
            // InternalXcore.g:5598:2: ( rule__XEnum__LiteralsAssignment_4_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getLiteralsAssignment_4_1_1()); 
            }
            // InternalXcore.g:5599:2: ( rule__XEnum__LiteralsAssignment_4_1_1 )
            // InternalXcore.g:5599:3: rule__XEnum__LiteralsAssignment_4_1_1
            {
            pushFollow(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:5608: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:5612:1: ( rule__XEnumLiteral__Group__0__Impl rule__XEnumLiteral__Group__1 )
            // InternalXcore.g:5613:2: rule__XEnumLiteral__Group__0__Impl rule__XEnumLiteral__Group__1
            {
            pushFollow(FOLLOW_24);
            rule__XEnumLiteral__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5620: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:5624:1: ( ( ( rule__XEnumLiteral__AnnotationsAssignment_0 )* ) )
            // InternalXcore.g:5625:1: ( ( rule__XEnumLiteral__AnnotationsAssignment_0 )* )
            {
            // InternalXcore.g:5625:1: ( ( rule__XEnumLiteral__AnnotationsAssignment_0 )* )
            // InternalXcore.g:5626:2: ( rule__XEnumLiteral__AnnotationsAssignment_0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getAnnotationsAssignment_0()); 
            }
            // InternalXcore.g:5627:2: ( 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:5627:3: rule__XEnumLiteral__AnnotationsAssignment_0
            	    {
            	    pushFollow(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:5635: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:5639:1: ( rule__XEnumLiteral__Group__1__Impl rule__XEnumLiteral__Group__2 )
            // InternalXcore.g:5640:2: rule__XEnumLiteral__Group__1__Impl rule__XEnumLiteral__Group__2
            {
            pushFollow(FOLLOW_31);
            rule__XEnumLiteral__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5647: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:5651:1: ( ( ( rule__XEnumLiteral__NameAssignment_1 ) ) )
            // InternalXcore.g:5652:1: ( ( rule__XEnumLiteral__NameAssignment_1 ) )
            {
            // InternalXcore.g:5652:1: ( ( rule__XEnumLiteral__NameAssignment_1 ) )
            // InternalXcore.g:5653:2: ( rule__XEnumLiteral__NameAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getNameAssignment_1()); 
            }
            // InternalXcore.g:5654:2: ( rule__XEnumLiteral__NameAssignment_1 )
            // InternalXcore.g:5654:3: rule__XEnumLiteral__NameAssignment_1
            {
            pushFollow(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:5662: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:5666:1: ( rule__XEnumLiteral__Group__2__Impl rule__XEnumLiteral__Group__3 )
            // InternalXcore.g:5667:2: rule__XEnumLiteral__Group__2__Impl rule__XEnumLiteral__Group__3
            {
            pushFollow(FOLLOW_31);
            rule__XEnumLiteral__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5674: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:5678:1: ( ( ( rule__XEnumLiteral__Group_2__0 )? ) )
            // InternalXcore.g:5679:1: ( ( rule__XEnumLiteral__Group_2__0 )? )
            {
            // InternalXcore.g:5679:1: ( ( rule__XEnumLiteral__Group_2__0 )? )
            // InternalXcore.g:5680:2: ( rule__XEnumLiteral__Group_2__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getGroup_2()); 
            }
            // InternalXcore.g:5681:2: ( 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:5681:3: rule__XEnumLiteral__Group_2__0
                    {
                    pushFollow(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:5689: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:5693:1: ( rule__XEnumLiteral__Group__3__Impl )
            // InternalXcore.g:5694:2: rule__XEnumLiteral__Group__3__Impl
            {
            pushFollow(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:5700: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:5704:1: ( ( ( rule__XEnumLiteral__Group_3__0 )? ) )
            // InternalXcore.g:5705:1: ( ( rule__XEnumLiteral__Group_3__0 )? )
            {
            // InternalXcore.g:5705:1: ( ( rule__XEnumLiteral__Group_3__0 )? )
            // InternalXcore.g:5706:2: ( rule__XEnumLiteral__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getGroup_3()); 
            }
            // InternalXcore.g:5707:2: ( 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:5707:3: rule__XEnumLiteral__Group_3__0
                    {
                    pushFollow(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:5716: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:5720:1: ( rule__XEnumLiteral__Group_2__0__Impl rule__XEnumLiteral__Group_2__1 )
            // InternalXcore.g:5721:2: rule__XEnumLiteral__Group_2__0__Impl rule__XEnumLiteral__Group_2__1
            {
            pushFollow(FOLLOW_16);
            rule__XEnumLiteral__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5728: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:5732:1: ( ( 'as' ) )
            // InternalXcore.g:5733:1: ( 'as' )
            {
            // InternalXcore.g:5733:1: ( 'as' )
            // InternalXcore.g:5734:2: 'as'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getAsKeyword_2_0()); 
            }
            match(input,26,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:5743: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:5747:1: ( rule__XEnumLiteral__Group_2__1__Impl )
            // InternalXcore.g:5748:2: rule__XEnumLiteral__Group_2__1__Impl
            {
            pushFollow(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:5754: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:5758:1: ( ( ( rule__XEnumLiteral__LiteralAssignment_2_1 ) ) )
            // InternalXcore.g:5759:1: ( ( rule__XEnumLiteral__LiteralAssignment_2_1 ) )
            {
            // InternalXcore.g:5759:1: ( ( rule__XEnumLiteral__LiteralAssignment_2_1 ) )
            // InternalXcore.g:5760:2: ( rule__XEnumLiteral__LiteralAssignment_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getLiteralAssignment_2_1()); 
            }
            // InternalXcore.g:5761:2: ( rule__XEnumLiteral__LiteralAssignment_2_1 )
            // InternalXcore.g:5761:3: rule__XEnumLiteral__LiteralAssignment_2_1
            {
            pushFollow(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:5770: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:5774:1: ( rule__XEnumLiteral__Group_3__0__Impl rule__XEnumLiteral__Group_3__1 )
            // InternalXcore.g:5775:2: rule__XEnumLiteral__Group_3__0__Impl rule__XEnumLiteral__Group_3__1
            {
            pushFollow(FOLLOW_32);
            rule__XEnumLiteral__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5782:1: rule__XEnumLiteral__Group_3__0__Impl : ( '=' ) ;
    public final void rule__XEnumLiteral__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:5786:1: ( ( '=' ) )
            // InternalXcore.g:5787:1: ( '=' )
            {
            // InternalXcore.g:5787:1: ( '=' )
            // InternalXcore.g:5788:2: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getEqualsSignKeyword_3_0()); 
            }
            match(input,13,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:5797: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:5801:1: ( rule__XEnumLiteral__Group_3__1__Impl )
            // InternalXcore.g:5802:2: rule__XEnumLiteral__Group_3__1__Impl
            {
            pushFollow(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:5808: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:5812:1: ( ( ( rule__XEnumLiteral__ValueAssignment_3_1 ) ) )
            // InternalXcore.g:5813:1: ( ( rule__XEnumLiteral__ValueAssignment_3_1 ) )
            {
            // InternalXcore.g:5813:1: ( ( rule__XEnumLiteral__ValueAssignment_3_1 ) )
            // InternalXcore.g:5814:2: ( rule__XEnumLiteral__ValueAssignment_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getValueAssignment_3_1()); 
            }
            // InternalXcore.g:5815:2: ( rule__XEnumLiteral__ValueAssignment_3_1 )
            // InternalXcore.g:5815:3: rule__XEnumLiteral__ValueAssignment_3_1
            {
            pushFollow(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:5824: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:5828:1: ( rule__SignedInt__Group__0__Impl rule__SignedInt__Group__1 )
            // InternalXcore.g:5829:2: rule__SignedInt__Group__0__Impl rule__SignedInt__Group__1
            {
            pushFollow(FOLLOW_32);
            rule__SignedInt__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5836:1: rule__SignedInt__Group__0__Impl : ( ( '-' )? ) ;
    public final void rule__SignedInt__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:5840:1: ( ( ( '-' )? ) )
            // InternalXcore.g:5841:1: ( ( '-' )? )
            {
            // InternalXcore.g:5841:1: ( ( '-' )? )
            // InternalXcore.g:5842:2: ( '-' )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSignedIntAccess().getHyphenMinusKeyword_0()); 
            }
            // InternalXcore.g:5843:2: ( '-' )?
            int alt71=2;
            int LA71_0 = input.LA(1);

            if ( (LA71_0==73) ) {
                alt71=1;
            }
            switch (alt71) {
                case 1 :
                    // InternalXcore.g:5843:3: '-'
                    {
                    match(input,73,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:5851: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:5855:1: ( rule__SignedInt__Group__1__Impl )
            // InternalXcore.g:5856:2: rule__SignedInt__Group__1__Impl
            {
            pushFollow(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:5862:1: rule__SignedInt__Group__1__Impl : ( RULE_INT ) ;
    public final void rule__SignedInt__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:5866:1: ( ( RULE_INT ) )
            // InternalXcore.g:5867:1: ( RULE_INT )
            {
            // InternalXcore.g:5867:1: ( RULE_INT )
            // InternalXcore.g:5868:2: RULE_INT
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSignedIntAccess().getINTTerminalRuleCall_1()); 
            }
            match(input,RULE_INT,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:5878: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:5882:1: ( rule__XClass__Group__0__Impl rule__XClass__Group__1 )
            // InternalXcore.g:5883:2: rule__XClass__Group__0__Impl rule__XClass__Group__1
            {
            pushFollow(FOLLOW_33);
            rule__XClass__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5890:1: rule__XClass__Group__0__Impl : ( () ) ;
    public final void rule__XClass__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:5894:1: ( ( () ) )
            // InternalXcore.g:5895:1: ( () )
            {
            // InternalXcore.g:5895:1: ( () )
            // InternalXcore.g:5896:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getXClassAction_0()); 
            }
            // InternalXcore.g:5897:2: ()
            // InternalXcore.g:5897:3: 
            {
            }

            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:5905: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:5909:1: ( rule__XClass__Group__1__Impl rule__XClass__Group__2 )
            // InternalXcore.g:5910:2: rule__XClass__Group__1__Impl rule__XClass__Group__2
            {
            pushFollow(FOLLOW_33);
            rule__XClass__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5917: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:5921:1: ( ( ( rule__XClass__AnnotationsAssignment_1 )* ) )
            // InternalXcore.g:5922:1: ( ( rule__XClass__AnnotationsAssignment_1 )* )
            {
            // InternalXcore.g:5922:1: ( ( rule__XClass__AnnotationsAssignment_1 )* )
            // InternalXcore.g:5923:2: ( rule__XClass__AnnotationsAssignment_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getAnnotationsAssignment_1()); 
            }
            // InternalXcore.g:5924:2: ( 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:5924:3: rule__XClass__AnnotationsAssignment_1
            	    {
            	    pushFollow(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:5932: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:5936:1: ( rule__XClass__Group__2__Impl rule__XClass__Group__3 )
            // InternalXcore.g:5937:2: rule__XClass__Group__2__Impl rule__XClass__Group__3
            {
            pushFollow(FOLLOW_20);
            rule__XClass__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5944: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:5948:1: ( ( ( rule__XClass__Alternatives_2 ) ) )
            // InternalXcore.g:5949:1: ( ( rule__XClass__Alternatives_2 ) )
            {
            // InternalXcore.g:5949:1: ( ( rule__XClass__Alternatives_2 ) )
            // InternalXcore.g:5950:2: ( rule__XClass__Alternatives_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getAlternatives_2()); 
            }
            // InternalXcore.g:5951:2: ( rule__XClass__Alternatives_2 )
            // InternalXcore.g:5951:3: rule__XClass__Alternatives_2
            {
            pushFollow(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:5959: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:5963:1: ( rule__XClass__Group__3__Impl rule__XClass__Group__4 )
            // InternalXcore.g:5964:2: rule__XClass__Group__3__Impl rule__XClass__Group__4
            {
            pushFollow(FOLLOW_34);
            rule__XClass__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5971: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:5975:1: ( ( ( rule__XClass__NameAssignment_3 ) ) )
            // InternalXcore.g:5976:1: ( ( rule__XClass__NameAssignment_3 ) )
            {
            // InternalXcore.g:5976:1: ( ( rule__XClass__NameAssignment_3 ) )
            // InternalXcore.g:5977:2: ( rule__XClass__NameAssignment_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getNameAssignment_3()); 
            }
            // InternalXcore.g:5978:2: ( rule__XClass__NameAssignment_3 )
            // InternalXcore.g:5978:3: rule__XClass__NameAssignment_3
            {
            pushFollow(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:5986: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:5990:1: ( rule__XClass__Group__4__Impl rule__XClass__Group__5 )
            // InternalXcore.g:5991:2: rule__XClass__Group__4__Impl rule__XClass__Group__5
            {
            pushFollow(FOLLOW_34);
            rule__XClass__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:5998: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:6002:1: ( ( ( rule__XClass__Group_4__0 )? ) )
            // InternalXcore.g:6003:1: ( ( rule__XClass__Group_4__0 )? )
            {
            // InternalXcore.g:6003:1: ( ( rule__XClass__Group_4__0 )? )
            // InternalXcore.g:6004:2: ( rule__XClass__Group_4__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getGroup_4()); 
            }
            // InternalXcore.g:6005:2: ( 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:6005:3: rule__XClass__Group_4__0
                    {
                    pushFollow(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:6013: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:6017:1: ( rule__XClass__Group__5__Impl rule__XClass__Group__6 )
            // InternalXcore.g:6018:2: rule__XClass__Group__5__Impl rule__XClass__Group__6
            {
            pushFollow(FOLLOW_34);
            rule__XClass__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6025: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:6029:1: ( ( ( rule__XClass__Group_5__0 )? ) )
            // InternalXcore.g:6030:1: ( ( rule__XClass__Group_5__0 )? )
            {
            // InternalXcore.g:6030:1: ( ( rule__XClass__Group_5__0 )? )
            // InternalXcore.g:6031:2: ( rule__XClass__Group_5__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getGroup_5()); 
            }
            // InternalXcore.g:6032:2: ( 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:6032:3: rule__XClass__Group_5__0
                    {
                    pushFollow(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:6040: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:6044:1: ( rule__XClass__Group__6__Impl rule__XClass__Group__7 )
            // InternalXcore.g:6045:2: rule__XClass__Group__6__Impl rule__XClass__Group__7
            {
            pushFollow(FOLLOW_34);
            rule__XClass__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6052: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:6056:1: ( ( ( rule__XClass__Group_6__0 )? ) )
            // InternalXcore.g:6057:1: ( ( rule__XClass__Group_6__0 )? )
            {
            // InternalXcore.g:6057:1: ( ( rule__XClass__Group_6__0 )? )
            // InternalXcore.g:6058:2: ( rule__XClass__Group_6__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getGroup_6()); 
            }
            // InternalXcore.g:6059:2: ( 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:6059:3: rule__XClass__Group_6__0
                    {
                    pushFollow(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:6067: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:6071:1: ( rule__XClass__Group__7__Impl rule__XClass__Group__8 )
            // InternalXcore.g:6072:2: rule__XClass__Group__7__Impl rule__XClass__Group__8
            {
            pushFollow(FOLLOW_35);
            rule__XClass__Group__7__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6079:1: rule__XClass__Group__7__Impl : ( '{' ) ;
    public final void rule__XClass__Group__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:6083:1: ( ( '{' ) )
            // InternalXcore.g:6084:1: ( '{' )
            {
            // InternalXcore.g:6084:1: ( '{' )
            // InternalXcore.g:6085:2: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getLeftCurlyBracketKeyword_7()); 
            }
            match(input,89,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:6094: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:6098:1: ( rule__XClass__Group__8__Impl rule__XClass__Group__9 )
            // InternalXcore.g:6099:2: rule__XClass__Group__8__Impl rule__XClass__Group__9
            {
            pushFollow(FOLLOW_35);
            rule__XClass__Group__8__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6106: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:6110:1: ( ( ( rule__XClass__MembersAssignment_8 )* ) )
            // InternalXcore.g:6111:1: ( ( rule__XClass__MembersAssignment_8 )* )
            {
            // InternalXcore.g:6111:1: ( ( rule__XClass__MembersAssignment_8 )* )
            // InternalXcore.g:6112:2: ( rule__XClass__MembersAssignment_8 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getMembersAssignment_8()); 
            }
            // InternalXcore.g:6113:2: ( 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:6113:3: rule__XClass__MembersAssignment_8
            	    {
            	    pushFollow(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:6121: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:6125:1: ( rule__XClass__Group__9__Impl )
            // InternalXcore.g:6126:2: rule__XClass__Group__9__Impl
            {
            pushFollow(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:6132:1: rule__XClass__Group__9__Impl : ( '}' ) ;
    public final void rule__XClass__Group__9__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:6136:1: ( ( '}' ) )
            // InternalXcore.g:6137:1: ( '}' )
            {
            // InternalXcore.g:6137:1: ( '}' )
            // InternalXcore.g:6138:2: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getRightCurlyBracketKeyword_9()); 
            }
            match(input,90,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:6148: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:6152:1: ( rule__XClass__Group_2_0__0__Impl rule__XClass__Group_2_0__1 )
            // InternalXcore.g:6153:2: rule__XClass__Group_2_0__0__Impl rule__XClass__Group_2_0__1
            {
            pushFollow(FOLLOW_37);
            rule__XClass__Group_2_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6160: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:6164:1: ( ( ( rule__XClass__AbstractAssignment_2_0_0 )? ) )
            // InternalXcore.g:6165:1: ( ( rule__XClass__AbstractAssignment_2_0_0 )? )
            {
            // InternalXcore.g:6165:1: ( ( rule__XClass__AbstractAssignment_2_0_0 )? )
            // InternalXcore.g:6166:2: ( rule__XClass__AbstractAssignment_2_0_0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getAbstractAssignment_2_0_0()); 
            }
            // InternalXcore.g:6167:2: ( 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:6167:3: rule__XClass__AbstractAssignment_2_0_0
                    {
                    pushFollow(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:6175: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:6179:1: ( rule__XClass__Group_2_0__1__Impl )
            // InternalXcore.g:6180:2: rule__XClass__Group_2_0__1__Impl
            {
            pushFollow(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:6186: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:6190:1: ( ( 'class' ) )
            // InternalXcore.g:6191:1: ( 'class' )
            {
            // InternalXcore.g:6191:1: ( 'class' )
            // InternalXcore.g:6192:2: 'class'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getClassKeyword_2_0_1()); 
            }
            match(input,27,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:6202: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:6206:1: ( rule__XClass__Group_4__0__Impl rule__XClass__Group_4__1 )
            // InternalXcore.g:6207:2: rule__XClass__Group_4__0__Impl rule__XClass__Group_4__1
            {
            pushFollow(FOLLOW_24);
            rule__XClass__Group_4__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6214:1: rule__XClass__Group_4__0__Impl : ( '<' ) ;
    public final void rule__XClass__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:6218:1: ( ( '<' ) )
            // InternalXcore.g:6219:1: ( '<' )
            {
            // InternalXcore.g:6219:1: ( '<' )
            // InternalXcore.g:6220:2: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getLessThanSignKeyword_4_0()); 
            }
            match(input,66,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:6229: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:6233:1: ( rule__XClass__Group_4__1__Impl rule__XClass__Group_4__2 )
            // InternalXcore.g:6234:2: rule__XClass__Group_4__1__Impl rule__XClass__Group_4__2
            {
            pushFollow(FOLLOW_25);
            rule__XClass__Group_4__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6241: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:6245:1: ( ( ( rule__XClass__TypeParametersAssignment_4_1 ) ) )
            // InternalXcore.g:6246:1: ( ( rule__XClass__TypeParametersAssignment_4_1 ) )
            {
            // InternalXcore.g:6246:1: ( ( rule__XClass__TypeParametersAssignment_4_1 ) )
            // InternalXcore.g:6247:2: ( rule__XClass__TypeParametersAssignment_4_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getTypeParametersAssignment_4_1()); 
            }
            // InternalXcore.g:6248:2: ( rule__XClass__TypeParametersAssignment_4_1 )
            // InternalXcore.g:6248:3: rule__XClass__TypeParametersAssignment_4_1
            {
            pushFollow(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:6256: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:6260:1: ( rule__XClass__Group_4__2__Impl rule__XClass__Group_4__3 )
            // InternalXcore.g:6261:2: rule__XClass__Group_4__2__Impl rule__XClass__Group_4__3
            {
            pushFollow(FOLLOW_25);
            rule__XClass__Group_4__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6268: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:6272:1: ( ( ( rule__XClass__Group_4_2__0 )* ) )
            // InternalXcore.g:6273:1: ( ( rule__XClass__Group_4_2__0 )* )
            {
            // InternalXcore.g:6273:1: ( ( rule__XClass__Group_4_2__0 )* )
            // InternalXcore.g:6274:2: ( rule__XClass__Group_4_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getGroup_4_2()); 
            }
            // InternalXcore.g:6275:2: ( 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:6275:3: rule__XClass__Group_4_2__0
            	    {
            	    pushFollow(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:6283: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:6287:1: ( rule__XClass__Group_4__3__Impl )
            // InternalXcore.g:6288:2: rule__XClass__Group_4__3__Impl
            {
            pushFollow(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:6294:1: rule__XClass__Group_4__3__Impl : ( '>' ) ;
    public final void rule__XClass__Group_4__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:6298:1: ( ( '>' ) )
            // InternalXcore.g:6299:1: ( '>' )
            {
            // InternalXcore.g:6299:1: ( '>' )
            // InternalXcore.g:6300:2: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getGreaterThanSignKeyword_4_3()); 
            }
            match(input,65,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:6310: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:6314:1: ( rule__XClass__Group_4_2__0__Impl rule__XClass__Group_4_2__1 )
            // InternalXcore.g:6315:2: rule__XClass__Group_4_2__0__Impl rule__XClass__Group_4_2__1
            {
            pushFollow(FOLLOW_24);
            rule__XClass__Group_4_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6322: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:6326:1: ( ( ',' ) )
            // InternalXcore.g:6327:1: ( ',' )
            {
            // InternalXcore.g:6327:1: ( ',' )
            // InternalXcore.g:6328:2: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getCommaKeyword_4_2_0()); 
            }
            match(input,87,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:6337: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:6341:1: ( rule__XClass__Group_4_2__1__Impl )
            // InternalXcore.g:6342:2: rule__XClass__Group_4_2__1__Impl
            {
            pushFollow(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:6348: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:6352:1: ( ( ( rule__XClass__TypeParametersAssignment_4_2_1 ) ) )
            // InternalXcore.g:6353:1: ( ( rule__XClass__TypeParametersAssignment_4_2_1 ) )
            {
            // InternalXcore.g:6353:1: ( ( rule__XClass__TypeParametersAssignment_4_2_1 ) )
            // InternalXcore.g:6354:2: ( rule__XClass__TypeParametersAssignment_4_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getTypeParametersAssignment_4_2_1()); 
            }
            // InternalXcore.g:6355:2: ( rule__XClass__TypeParametersAssignment_4_2_1 )
            // InternalXcore.g:6355:3: rule__XClass__TypeParametersAssignment_4_2_1
            {
            pushFollow(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:6364: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:6368:1: ( rule__XClass__Group_5__0__Impl rule__XClass__Group_5__1 )
            // InternalXcore.g:6369:2: rule__XClass__Group_5__0__Impl rule__XClass__Group_5__1
            {
            pushFollow(FOLLOW_11);
            rule__XClass__Group_5__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6376: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:6380:1: ( ( 'extends' ) )
            // InternalXcore.g:6381:1: ( 'extends' )
            {
            // InternalXcore.g:6381:1: ( 'extends' )
            // InternalXcore.g:6382:2: 'extends'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getExtendsKeyword_5_0()); 
            }
            match(input,34,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:6391: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:6395:1: ( rule__XClass__Group_5__1__Impl rule__XClass__Group_5__2 )
            // InternalXcore.g:6396:2: rule__XClass__Group_5__1__Impl rule__XClass__Group_5__2
            {
            pushFollow(FOLLOW_38);
            rule__XClass__Group_5__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6403: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:6407:1: ( ( ( rule__XClass__SuperTypesAssignment_5_1 ) ) )
            // InternalXcore.g:6408:1: ( ( rule__XClass__SuperTypesAssignment_5_1 ) )
            {
            // InternalXcore.g:6408:1: ( ( rule__XClass__SuperTypesAssignment_5_1 ) )
            // InternalXcore.g:6409:2: ( rule__XClass__SuperTypesAssignment_5_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getSuperTypesAssignment_5_1()); 
            }
            // InternalXcore.g:6410:2: ( rule__XClass__SuperTypesAssignment_5_1 )
            // InternalXcore.g:6410:3: rule__XClass__SuperTypesAssignment_5_1
            {
            pushFollow(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:6418: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:6422:1: ( rule__XClass__Group_5__2__Impl )
            // InternalXcore.g:6423:2: rule__XClass__Group_5__2__Impl
            {
            pushFollow(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:6429: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:6433:1: ( ( ( rule__XClass__Group_5_2__0 )* ) )
            // InternalXcore.g:6434:1: ( ( rule__XClass__Group_5_2__0 )* )
            {
            // InternalXcore.g:6434:1: ( ( rule__XClass__Group_5_2__0 )* )
            // InternalXcore.g:6435:2: ( rule__XClass__Group_5_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getGroup_5_2()); 
            }
            // InternalXcore.g:6436:2: ( 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:6436:3: rule__XClass__Group_5_2__0
            	    {
            	    pushFollow(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:6445: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:6449:1: ( rule__XClass__Group_5_2__0__Impl rule__XClass__Group_5_2__1 )
            // InternalXcore.g:6450:2: rule__XClass__Group_5_2__0__Impl rule__XClass__Group_5_2__1
            {
            pushFollow(FOLLOW_11);
            rule__XClass__Group_5_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6457: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:6461:1: ( ( ',' ) )
            // InternalXcore.g:6462:1: ( ',' )
            {
            // InternalXcore.g:6462:1: ( ',' )
            // InternalXcore.g:6463:2: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getCommaKeyword_5_2_0()); 
            }
            match(input,87,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:6472: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:6476:1: ( rule__XClass__Group_5_2__1__Impl )
            // InternalXcore.g:6477:2: rule__XClass__Group_5_2__1__Impl
            {
            pushFollow(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:6483: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:6487:1: ( ( ( rule__XClass__SuperTypesAssignment_5_2_1 ) ) )
            // InternalXcore.g:6488:1: ( ( rule__XClass__SuperTypesAssignment_5_2_1 ) )
            {
            // InternalXcore.g:6488:1: ( ( rule__XClass__SuperTypesAssignment_5_2_1 ) )
            // InternalXcore.g:6489:2: ( rule__XClass__SuperTypesAssignment_5_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getSuperTypesAssignment_5_2_1()); 
            }
            // InternalXcore.g:6490:2: ( rule__XClass__SuperTypesAssignment_5_2_1 )
            // InternalXcore.g:6490:3: rule__XClass__SuperTypesAssignment_5_2_1
            {
            pushFollow(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:6499: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:6503:1: ( rule__XClass__Group_6__0__Impl rule__XClass__Group_6__1 )
            // InternalXcore.g:6504:2: rule__XClass__Group_6__0__Impl rule__XClass__Group_6__1
            {
            pushFollow(FOLLOW_22);
            rule__XClass__Group_6__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6511: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:6515:1: ( ( 'wraps' ) )
            // InternalXcore.g:6516:1: ( 'wraps' )
            {
            // InternalXcore.g:6516:1: ( 'wraps' )
            // InternalXcore.g:6517:2: 'wraps'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getWrapsKeyword_6_0()); 
            }
            match(input,54,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:6526: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:6530:1: ( rule__XClass__Group_6__1__Impl )
            // InternalXcore.g:6531:2: rule__XClass__Group_6__1__Impl
            {
            pushFollow(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:6537: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:6541:1: ( ( ( rule__XClass__InstanceTypeAssignment_6_1 ) ) )
            // InternalXcore.g:6542:1: ( ( rule__XClass__InstanceTypeAssignment_6_1 ) )
            {
            // InternalXcore.g:6542:1: ( ( rule__XClass__InstanceTypeAssignment_6_1 ) )
            // InternalXcore.g:6543:2: ( rule__XClass__InstanceTypeAssignment_6_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getInstanceTypeAssignment_6_1()); 
            }
            // InternalXcore.g:6544:2: ( rule__XClass__InstanceTypeAssignment_6_1 )
            // InternalXcore.g:6544:3: rule__XClass__InstanceTypeAssignment_6_1
            {
            pushFollow(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:6553: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:6557:1: ( rule__XAttribute__Group__0__Impl rule__XAttribute__Group__1 )
            // InternalXcore.g:6558:2: rule__XAttribute__Group__0__Impl rule__XAttribute__Group__1
            {
            pushFollow(FOLLOW_39);
            rule__XAttribute__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6565:1: rule__XAttribute__Group__0__Impl : ( () ) ;
    public final void rule__XAttribute__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:6569:1: ( ( () ) )
            // InternalXcore.g:6570:1: ( () )
            {
            // InternalXcore.g:6570:1: ( () )
            // InternalXcore.g:6571:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getXAttributeAction_0()); 
            }
            // InternalXcore.g:6572:2: ()
            // InternalXcore.g:6572:3: 
            {
            }

            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:6580: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:6584:1: ( rule__XAttribute__Group__1__Impl rule__XAttribute__Group__2 )
            // InternalXcore.g:6585:2: rule__XAttribute__Group__1__Impl rule__XAttribute__Group__2
            {
            pushFollow(FOLLOW_39);
            rule__XAttribute__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6592: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:6596:1: ( ( ( rule__XAttribute__AnnotationsAssignment_1 )* ) )
            // InternalXcore.g:6597:1: ( ( rule__XAttribute__AnnotationsAssignment_1 )* )
            {
            // InternalXcore.g:6597:1: ( ( rule__XAttribute__AnnotationsAssignment_1 )* )
            // InternalXcore.g:6598:2: ( rule__XAttribute__AnnotationsAssignment_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getAnnotationsAssignment_1()); 
            }
            // InternalXcore.g:6599:2: ( 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:6599:3: rule__XAttribute__AnnotationsAssignment_1
            	    {
            	    pushFollow(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:6607: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:6611:1: ( rule__XAttribute__Group__2__Impl rule__XAttribute__Group__3 )
            // InternalXcore.g:6612:2: rule__XAttribute__Group__2__Impl rule__XAttribute__Group__3
            {
            pushFollow(FOLLOW_11);
            rule__XAttribute__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6619: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:6623:1: ( ( ( rule__XAttribute__UnorderedGroup_2 ) ) )
            // InternalXcore.g:6624:1: ( ( rule__XAttribute__UnorderedGroup_2 ) )
            {
            // InternalXcore.g:6624:1: ( ( rule__XAttribute__UnorderedGroup_2 ) )
            // InternalXcore.g:6625:2: ( rule__XAttribute__UnorderedGroup_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getUnorderedGroup_2()); 
            }
            // InternalXcore.g:6626:2: ( rule__XAttribute__UnorderedGroup_2 )
            // InternalXcore.g:6626:3: rule__XAttribute__UnorderedGroup_2
            {
            pushFollow(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:6634: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:6638:1: ( rule__XAttribute__Group__3__Impl rule__XAttribute__Group__4 )
            // InternalXcore.g:6639:2: rule__XAttribute__Group__3__Impl rule__XAttribute__Group__4
            {
            pushFollow(FOLLOW_40);
            rule__XAttribute__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6646: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:6650:1: ( ( ( rule__XAttribute__TypeAssignment_3 ) ) )
            // InternalXcore.g:6651:1: ( ( rule__XAttribute__TypeAssignment_3 ) )
            {
            // InternalXcore.g:6651:1: ( ( rule__XAttribute__TypeAssignment_3 ) )
            // InternalXcore.g:6652:2: ( rule__XAttribute__TypeAssignment_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getTypeAssignment_3()); 
            }
            // InternalXcore.g:6653:2: ( rule__XAttribute__TypeAssignment_3 )
            // InternalXcore.g:6653:3: rule__XAttribute__TypeAssignment_3
            {
            pushFollow(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:6661: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:6665:1: ( rule__XAttribute__Group__4__Impl rule__XAttribute__Group__5 )
            // InternalXcore.g:6666:2: rule__XAttribute__Group__4__Impl rule__XAttribute__Group__5
            {
            pushFollow(FOLLOW_40);
            rule__XAttribute__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6673: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:6677:1: ( ( ( rule__XAttribute__MultiplicityAssignment_4 )? ) )
            // InternalXcore.g:6678:1: ( ( rule__XAttribute__MultiplicityAssignment_4 )? )
            {
            // InternalXcore.g:6678:1: ( ( rule__XAttribute__MultiplicityAssignment_4 )? )
            // InternalXcore.g:6679:2: ( rule__XAttribute__MultiplicityAssignment_4 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getMultiplicityAssignment_4()); 
            }
            // InternalXcore.g:6680:2: ( 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:6680:3: rule__XAttribute__MultiplicityAssignment_4
                    {
                    pushFollow(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:6688: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:6692:1: ( rule__XAttribute__Group__5__Impl rule__XAttribute__Group__6 )
            // InternalXcore.g:6693:2: rule__XAttribute__Group__5__Impl rule__XAttribute__Group__6
            {
            pushFollow(FOLLOW_41);
            rule__XAttribute__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6700: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:6704:1: ( ( ( rule__XAttribute__NameAssignment_5 ) ) )
            // InternalXcore.g:6705:1: ( ( rule__XAttribute__NameAssignment_5 ) )
            {
            // InternalXcore.g:6705:1: ( ( rule__XAttribute__NameAssignment_5 ) )
            // InternalXcore.g:6706:2: ( rule__XAttribute__NameAssignment_5 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getNameAssignment_5()); 
            }
            // InternalXcore.g:6707:2: ( rule__XAttribute__NameAssignment_5 )
            // InternalXcore.g:6707:3: rule__XAttribute__NameAssignment_5
            {
            pushFollow(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:6715: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:6719:1: ( rule__XAttribute__Group__6__Impl rule__XAttribute__Group__7 )
            // InternalXcore.g:6720:2: rule__XAttribute__Group__6__Impl rule__XAttribute__Group__7
            {
            pushFollow(FOLLOW_41);
            rule__XAttribute__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6727: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:6731:1: ( ( ( rule__XAttribute__Group_6__0 )? ) )
            // InternalXcore.g:6732:1: ( ( rule__XAttribute__Group_6__0 )? )
            {
            // InternalXcore.g:6732:1: ( ( rule__XAttribute__Group_6__0 )? )
            // InternalXcore.g:6733:2: ( rule__XAttribute__Group_6__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getGroup_6()); 
            }
            // InternalXcore.g:6734:2: ( 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:6734:3: rule__XAttribute__Group_6__0
                    {
                    pushFollow(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:6742: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:6746:1: ( rule__XAttribute__Group__7__Impl )
            // InternalXcore.g:6747:2: rule__XAttribute__Group__7__Impl
            {
            pushFollow(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:6753: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:6757:1: ( ( ( rule__XAttribute__UnorderedGroup_7 ) ) )
            // InternalXcore.g:6758:1: ( ( rule__XAttribute__UnorderedGroup_7 ) )
            {
            // InternalXcore.g:6758:1: ( ( rule__XAttribute__UnorderedGroup_7 ) )
            // InternalXcore.g:6759:2: ( rule__XAttribute__UnorderedGroup_7 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getUnorderedGroup_7()); 
            }
            // InternalXcore.g:6760:2: ( rule__XAttribute__UnorderedGroup_7 )
            // InternalXcore.g:6760:3: rule__XAttribute__UnorderedGroup_7
            {
            pushFollow(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:6769: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:6773:1: ( rule__XAttribute__Group_6__0__Impl rule__XAttribute__Group_6__1 )
            // InternalXcore.g:6774:2: rule__XAttribute__Group_6__0__Impl rule__XAttribute__Group_6__1
            {
            pushFollow(FOLLOW_16);
            rule__XAttribute__Group_6__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6781:1: rule__XAttribute__Group_6__0__Impl : ( '=' ) ;
    public final void rule__XAttribute__Group_6__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:6785:1: ( ( '=' ) )
            // InternalXcore.g:6786:1: ( '=' )
            {
            // InternalXcore.g:6786:1: ( '=' )
            // InternalXcore.g:6787:2: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getEqualsSignKeyword_6_0()); 
            }
            match(input,13,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:6796: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:6800:1: ( rule__XAttribute__Group_6__1__Impl )
            // InternalXcore.g:6801:2: rule__XAttribute__Group_6__1__Impl
            {
            pushFollow(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:6807: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:6811:1: ( ( ( rule__XAttribute__DefaultValueLiteralAssignment_6_1 ) ) )
            // InternalXcore.g:6812:1: ( ( rule__XAttribute__DefaultValueLiteralAssignment_6_1 ) )
            {
            // InternalXcore.g:6812:1: ( ( rule__XAttribute__DefaultValueLiteralAssignment_6_1 ) )
            // InternalXcore.g:6813:2: ( rule__XAttribute__DefaultValueLiteralAssignment_6_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getDefaultValueLiteralAssignment_6_1()); 
            }
            // InternalXcore.g:6814:2: ( rule__XAttribute__DefaultValueLiteralAssignment_6_1 )
            // InternalXcore.g:6814:3: rule__XAttribute__DefaultValueLiteralAssignment_6_1
            {
            pushFollow(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:6823: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:6827:1: ( rule__XAttribute__Group_7_0__0__Impl rule__XAttribute__Group_7_0__1 )
            // InternalXcore.g:6828:2: rule__XAttribute__Group_7_0__0__Impl rule__XAttribute__Group_7_0__1
            {
            pushFollow(FOLLOW_26);
            rule__XAttribute__Group_7_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6835: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:6839:1: ( ( 'get' ) )
            // InternalXcore.g:6840:1: ( 'get' )
            {
            // InternalXcore.g:6840:1: ( 'get' )
            // InternalXcore.g:6841:2: 'get'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getGetKeyword_7_0_0()); 
            }
            match(input,20,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:6850: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:6854:1: ( rule__XAttribute__Group_7_0__1__Impl )
            // InternalXcore.g:6855:2: rule__XAttribute__Group_7_0__1__Impl
            {
            pushFollow(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:6861: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:6865:1: ( ( ( rule__XAttribute__GetBodyAssignment_7_0_1 ) ) )
            // InternalXcore.g:6866:1: ( ( rule__XAttribute__GetBodyAssignment_7_0_1 ) )
            {
            // InternalXcore.g:6866:1: ( ( rule__XAttribute__GetBodyAssignment_7_0_1 ) )
            // InternalXcore.g:6867:2: ( rule__XAttribute__GetBodyAssignment_7_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getGetBodyAssignment_7_0_1()); 
            }
            // InternalXcore.g:6868:2: ( rule__XAttribute__GetBodyAssignment_7_0_1 )
            // InternalXcore.g:6868:3: rule__XAttribute__GetBodyAssignment_7_0_1
            {
            pushFollow(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:6877: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:6881:1: ( rule__XAttribute__Group_7_1__0__Impl rule__XAttribute__Group_7_1__1 )
            // InternalXcore.g:6882:2: rule__XAttribute__Group_7_1__0__Impl rule__XAttribute__Group_7_1__1
            {
            pushFollow(FOLLOW_26);
            rule__XAttribute__Group_7_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6889: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:6893:1: ( ( 'set' ) )
            // InternalXcore.g:6894:1: ( 'set' )
            {
            // InternalXcore.g:6894:1: ( 'set' )
            // InternalXcore.g:6895:2: 'set'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getSetKeyword_7_1_0()); 
            }
            match(input,22,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:6904: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:6908:1: ( rule__XAttribute__Group_7_1__1__Impl )
            // InternalXcore.g:6909:2: rule__XAttribute__Group_7_1__1__Impl
            {
            pushFollow(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:6915: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:6919:1: ( ( ( rule__XAttribute__SetBodyAssignment_7_1_1 ) ) )
            // InternalXcore.g:6920:1: ( ( rule__XAttribute__SetBodyAssignment_7_1_1 ) )
            {
            // InternalXcore.g:6920:1: ( ( rule__XAttribute__SetBodyAssignment_7_1_1 ) )
            // InternalXcore.g:6921:2: ( rule__XAttribute__SetBodyAssignment_7_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getSetBodyAssignment_7_1_1()); 
            }
            // InternalXcore.g:6922:2: ( rule__XAttribute__SetBodyAssignment_7_1_1 )
            // InternalXcore.g:6922:3: rule__XAttribute__SetBodyAssignment_7_1_1
            {
            pushFollow(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:6931: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:6935:1: ( rule__XAttribute__Group_7_2__0__Impl rule__XAttribute__Group_7_2__1 )
            // InternalXcore.g:6936:2: rule__XAttribute__Group_7_2__0__Impl rule__XAttribute__Group_7_2__1
            {
            pushFollow(FOLLOW_26);
            rule__XAttribute__Group_7_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6943: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:6947:1: ( ( 'isSet' ) )
            // InternalXcore.g:6948:1: ( 'isSet' )
            {
            // InternalXcore.g:6948:1: ( 'isSet' )
            // InternalXcore.g:6949:2: 'isSet'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getIsSetKeyword_7_2_0()); 
            }
            match(input,21,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:6958: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:6962:1: ( rule__XAttribute__Group_7_2__1__Impl )
            // InternalXcore.g:6963:2: rule__XAttribute__Group_7_2__1__Impl
            {
            pushFollow(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:6969: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:6973:1: ( ( ( rule__XAttribute__IsSetBodyAssignment_7_2_1 ) ) )
            // InternalXcore.g:6974:1: ( ( rule__XAttribute__IsSetBodyAssignment_7_2_1 ) )
            {
            // InternalXcore.g:6974:1: ( ( rule__XAttribute__IsSetBodyAssignment_7_2_1 ) )
            // InternalXcore.g:6975:2: ( rule__XAttribute__IsSetBodyAssignment_7_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getIsSetBodyAssignment_7_2_1()); 
            }
            // InternalXcore.g:6976:2: ( rule__XAttribute__IsSetBodyAssignment_7_2_1 )
            // InternalXcore.g:6976:3: rule__XAttribute__IsSetBodyAssignment_7_2_1
            {
            pushFollow(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:6985: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:6989:1: ( rule__XAttribute__Group_7_3__0__Impl rule__XAttribute__Group_7_3__1 )
            // InternalXcore.g:6990:2: rule__XAttribute__Group_7_3__0__Impl rule__XAttribute__Group_7_3__1
            {
            pushFollow(FOLLOW_26);
            rule__XAttribute__Group_7_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:6997: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:7001:1: ( ( 'unset' ) )
            // InternalXcore.g:7002:1: ( 'unset' )
            {
            // InternalXcore.g:7002:1: ( 'unset' )
            // InternalXcore.g:7003:2: 'unset'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getUnsetKeyword_7_3_0()); 
            }
            match(input,23,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:7012: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:7016:1: ( rule__XAttribute__Group_7_3__1__Impl )
            // InternalXcore.g:7017:2: rule__XAttribute__Group_7_3__1__Impl
            {
            pushFollow(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:7023: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:7027:1: ( ( ( rule__XAttribute__UnsetBodyAssignment_7_3_1 ) ) )
            // InternalXcore.g:7028:1: ( ( rule__XAttribute__UnsetBodyAssignment_7_3_1 ) )
            {
            // InternalXcore.g:7028:1: ( ( rule__XAttribute__UnsetBodyAssignment_7_3_1 ) )
            // InternalXcore.g:7029:2: ( rule__XAttribute__UnsetBodyAssignment_7_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getUnsetBodyAssignment_7_3_1()); 
            }
            // InternalXcore.g:7030:2: ( rule__XAttribute__UnsetBodyAssignment_7_3_1 )
            // InternalXcore.g:7030:3: rule__XAttribute__UnsetBodyAssignment_7_3_1
            {
            pushFollow(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:7039: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:7043:1: ( rule__XReference__Group__0__Impl rule__XReference__Group__1 )
            // InternalXcore.g:7044:2: rule__XReference__Group__0__Impl rule__XReference__Group__1
            {
            pushFollow(FOLLOW_42);
            rule__XReference__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:7051:1: rule__XReference__Group__0__Impl : ( () ) ;
    public final void rule__XReference__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:7055:1: ( ( () ) )
            // InternalXcore.g:7056:1: ( () )
            {
            // InternalXcore.g:7056:1: ( () )
            // InternalXcore.g:7057:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getXReferenceAction_0()); 
            }
            // InternalXcore.g:7058:2: ()
            // InternalXcore.g:7058:3: 
            {
            }

            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:7066: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:7070:1: ( rule__XReference__Group__1__Impl rule__XReference__Group__2 )
            // InternalXcore.g:7071:2: rule__XReference__Group__1__Impl rule__XReference__Group__2
            {
            pushFollow(FOLLOW_42);
            rule__XReference__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:7078: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:7082:1: ( ( ( rule__XReference__AnnotationsAssignment_1 )* ) )
            // InternalXcore.g:7083:1: ( ( rule__XReference__AnnotationsAssignment_1 )* )
            {
            // InternalXcore.g:7083:1: ( ( rule__XReference__AnnotationsAssignment_1 )* )
            // InternalXcore.g:7084:2: ( rule__XReference__AnnotationsAssignment_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getAnnotationsAssignment_1()); 
            }
            // InternalXcore.g:7085:2: ( 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:7085:3: rule__XReference__AnnotationsAssignment_1
            	    {
            	    pushFollow(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:7093: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:7097:1: ( rule__XReference__Group__2__Impl rule__XReference__Group__3 )
            // InternalXcore.g:7098:2: rule__XReference__Group__2__Impl rule__XReference__Group__3
            {
            pushFollow(FOLLOW_43);
            rule__XReference__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:7105: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:7109:1: ( ( ( rule__XReference__Alternatives_2 ) ) )
            // InternalXcore.g:7110:1: ( ( rule__XReference__Alternatives_2 ) )
            {
            // InternalXcore.g:7110:1: ( ( rule__XReference__Alternatives_2 ) )
            // InternalXcore.g:7111:2: ( rule__XReference__Alternatives_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getAlternatives_2()); 
            }
            // InternalXcore.g:7112:2: ( rule__XReference__Alternatives_2 )
            // InternalXcore.g:7112:3: rule__XReference__Alternatives_2
            {
            pushFollow(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:7120: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:7124:1: ( rule__XReference__Group__3__Impl rule__XReference__Group__4 )
            // InternalXcore.g:7125:2: rule__XReference__Group__3__Impl rule__XReference__Group__4
            {
            pushFollow(FOLLOW_11);
            rule__XReference__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:7132: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:7136:1: ( ( ( rule__XReference__UnorderedGroup_3 ) ) )
            // InternalXcore.g:7137:1: ( ( rule__XReference__UnorderedGroup_3 ) )
            {
            // InternalXcore.g:7137:1: ( ( rule__XReference__UnorderedGroup_3 ) )
            // InternalXcore.g:7138:2: ( rule__XReference__UnorderedGroup_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getUnorderedGroup_3()); 
            }
            // InternalXcore.g:7139:2: ( rule__XReference__UnorderedGroup_3 )
            // InternalXcore.g:7139:3: rule__XReference__UnorderedGroup_3
            {
            pushFollow(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:7147: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:7151:1: ( rule__XReference__Group__4__Impl rule__XReference__Group__5 )
            // InternalXcore.g:7152:2: rule__XReference__Group__4__Impl rule__XReference__Group__5
            {
            pushFollow(FOLLOW_40);
            rule__XReference__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:7159: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:7163:1: ( ( ( rule__XReference__TypeAssignment_4 ) ) )
            // InternalXcore.g:7164:1: ( ( rule__XReference__TypeAssignment_4 ) )
            {
            // InternalXcore.g:7164:1: ( ( rule__XReference__TypeAssignment_4 ) )
            // InternalXcore.g:7165:2: ( rule__XReference__TypeAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getTypeAssignment_4()); 
            }
            // InternalXcore.g:7166:2: ( rule__XReference__TypeAssignment_4 )
            // InternalXcore.g:7166:3: rule__XReference__TypeAssignment_4
            {
            pushFollow(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:7174: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:7178:1: ( rule__XReference__Group__5__Impl rule__XReference__Group__6 )
            // InternalXcore.g:7179:2: rule__XReference__Group__5__Impl rule__XReference__Group__6
            {
            pushFollow(FOLLOW_40);
            rule__XReference__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:7186: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:7190:1: ( ( ( rule__XReference__MultiplicityAssignment_5 )? ) )
            // InternalXcore.g:7191:1: ( ( rule__XReference__MultiplicityAssignment_5 )? )
            {
            // InternalXcore.g:7191:1: ( ( rule__XReference__MultiplicityAssignment_5 )? )
            // InternalXcore.g:7192:2: ( rule__XReference__MultiplicityAssignment_5 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getMultiplicityAssignment_5()); 
            }
            // InternalXcore.g:7193:2: ( 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:7193:3: rule__XReference__MultiplicityAssignment_5
                    {
                    pushFollow(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:7201: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:7205:1: ( rule__XReference__Group__6__Impl rule__XReference__Group__7 )
            // InternalXcore.g:7206:2: rule__XReference__Group__6__Impl rule__XReference__Group__7
            {
            pushFollow(FOLLOW_44);
            rule__XReference__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:7213: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:7217:1: ( ( ( rule__XReference__NameAssignment_6 ) ) )
            // InternalXcore.g:7218:1: ( ( rule__XReference__NameAssignment_6 ) )
            {
            // InternalXcore.g:7218:1: ( ( rule__XReference__NameAssignment_6 ) )
            // InternalXcore.g:7219:2: ( rule__XReference__NameAssignment_6 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getNameAssignment_6()); 
            }
            // InternalXcore.g:7220:2: ( rule__XReference__NameAssignment_6 )
            // InternalXcore.g:7220:3: rule__XReference__NameAssignment_6
            {
            pushFollow(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:7228: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:7232:1: ( rule__XReference__Group__7__Impl rule__XReference__Group__8 )
            // InternalXcore.g:7233:2: rule__XReference__Group__7__Impl rule__XReference__Group__8
            {
            pushFollow(FOLLOW_44);
            rule__XReference__Group__7__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:7240: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:7244:1: ( ( ( rule__XReference__Group_7__0 )? ) )
            // InternalXcore.g:7245:1: ( ( rule__XReference__Group_7__0 )? )
            {
            // InternalXcore.g:7245:1: ( ( rule__XReference__Group_7__0 )? )
            // InternalXcore.g:7246:2: ( rule__XReference__Group_7__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getGroup_7()); 
            }
            // InternalXcore.g:7247:2: ( 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:7247:3: rule__XReference__Group_7__0
                    {
                    pushFollow(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:7255: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:7259:1: ( rule__XReference__Group__8__Impl rule__XReference__Group__9 )
            // InternalXcore.g:7260:2: rule__XReference__Group__8__Impl rule__XReference__Group__9
            {
            pushFollow(FOLLOW_44);
            rule__XReference__Group__8__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:7267: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:7271:1: ( ( ( rule__XReference__Group_8__0 )? ) )
            // InternalXcore.g:7272:1: ( ( rule__XReference__Group_8__0 )? )
            {
            // InternalXcore.g:7272:1: ( ( rule__XReference__Group_8__0 )? )
            // InternalXcore.g:7273:2: ( rule__XReference__Group_8__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getGroup_8()); 
            }
            // InternalXcore.g:7274:2: ( 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:7274:3: rule__XReference__Group_8__0
                    {
                    pushFollow(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:7282: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:7286:1: ( rule__XReference__Group__9__Impl )
            // InternalXcore.g:7287:2: rule__XReference__Group__9__Impl
            {
            pushFollow(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:7293: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:7297:1: ( ( ( rule__XReference__UnorderedGroup_9 ) ) )
            // InternalXcore.g:7298:1: ( ( rule__XReference__UnorderedGroup_9 ) )
            {
            // InternalXcore.g:7298:1: ( ( rule__XReference__UnorderedGroup_9 ) )
            // InternalXcore.g:7299:2: ( rule__XReference__UnorderedGroup_9 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getUnorderedGroup_9()); 
            }
            // InternalXcore.g:7300:2: ( rule__XReference__UnorderedGroup_9 )
            // InternalXcore.g:7300:3: rule__XReference__UnorderedGroup_9
            {
            pushFollow(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:7309: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:7313:1: ( rule__XReference__Group_2_0__0__Impl rule__XReference__Group_2_0__1 )
            // InternalXcore.g:7314:2: rule__XReference__Group_2_0__0__Impl rule__XReference__Group_2_0__1
            {
            pushFollow(FOLLOW_45);
            rule__XReference__Group_2_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:7321: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:7325:1: ( ( ( rule__XReference__ContainmentAssignment_2_0_0 ) ) )
            // InternalXcore.g:7326:1: ( ( rule__XReference__ContainmentAssignment_2_0_0 ) )
            {
            // InternalXcore.g:7326:1: ( ( rule__XReference__ContainmentAssignment_2_0_0 ) )
            // InternalXcore.g:7327:2: ( rule__XReference__ContainmentAssignment_2_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getContainmentAssignment_2_0_0()); 
            }
            // InternalXcore.g:7328:2: ( rule__XReference__ContainmentAssignment_2_0_0 )
            // InternalXcore.g:7328:3: rule__XReference__ContainmentAssignment_2_0_0
            {
            pushFollow(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:7336: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:7340:1: ( rule__XReference__Group_2_0__1__Impl )
            // InternalXcore.g:7341:2: rule__XReference__Group_2_0__1__Impl
            {
            pushFollow(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:7347: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:7351:1: ( ( ( rule__XReference__ResolveProxiesAssignment_2_0_1 )? ) )
            // InternalXcore.g:7352:1: ( ( rule__XReference__ResolveProxiesAssignment_2_0_1 )? )
            {
            // InternalXcore.g:7352:1: ( ( rule__XReference__ResolveProxiesAssignment_2_0_1 )? )
            // InternalXcore.g:7353:2: ( rule__XReference__ResolveProxiesAssignment_2_0_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getResolveProxiesAssignment_2_0_1()); 
            }
            // InternalXcore.g:7354:2: ( 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:7354:3: rule__XReference__ResolveProxiesAssignment_2_0_1
                    {
                    pushFollow(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:7363: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:7367:1: ( rule__XReference__Group_2_1__0__Impl rule__XReference__Group_2_1__1 )
            // InternalXcore.g:7368:2: rule__XReference__Group_2_1__0__Impl rule__XReference__Group_2_1__1
            {
            pushFollow(FOLLOW_46);
            rule__XReference__Group_2_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:7375: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:7379:1: ( ( ( rule__XReference__ResolveProxiesAssignment_2_1_0 ) ) )
            // InternalXcore.g:7380:1: ( ( rule__XReference__ResolveProxiesAssignment_2_1_0 ) )
            {
            // InternalXcore.g:7380:1: ( ( rule__XReference__ResolveProxiesAssignment_2_1_0 ) )
            // InternalXcore.g:7381:2: ( rule__XReference__ResolveProxiesAssignment_2_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getResolveProxiesAssignment_2_1_0()); 
            }
            // InternalXcore.g:7382:2: ( rule__XReference__ResolveProxiesAssignment_2_1_0 )
            // InternalXcore.g:7382:3: rule__XReference__ResolveProxiesAssignment_2_1_0
            {
            pushFollow(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:7390: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:7394:1: ( rule__XReference__Group_2_1__1__Impl )
            // InternalXcore.g:7395:2: rule__XReference__Group_2_1__1__Impl
            {
            pushFollow(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:7401: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:7405:1: ( ( ( rule__XReference__ContainmentAssignment_2_1_1 ) ) )
            // InternalXcore.g:7406:1: ( ( rule__XReference__ContainmentAssignment_2_1_1 ) )
            {
            // InternalXcore.g:7406:1: ( ( rule__XReference__ContainmentAssignment_2_1_1 ) )
            // InternalXcore.g:7407:2: ( rule__XReference__ContainmentAssignment_2_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getContainmentAssignment_2_1_1()); 
            }
            // InternalXcore.g:7408:2: ( rule__XReference__ContainmentAssignment_2_1_1 )
            // InternalXcore.g:7408:3: rule__XReference__ContainmentAssignment_2_1_1
            {
            pushFollow(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:7417: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:7421:1: ( rule__XReference__Group_2_2__0__Impl rule__XReference__Group_2_2__1 )
            // InternalXcore.g:7422:2: rule__XReference__Group_2_2__0__Impl rule__XReference__Group_2_2__1
            {
            pushFollow(FOLLOW_45);
            rule__XReference__Group_2_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:7429: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:7433:1: ( ( ( rule__XReference__ContainerAssignment_2_2_0 ) ) )
            // InternalXcore.g:7434:1: ( ( rule__XReference__ContainerAssignment_2_2_0 ) )
            {
            // InternalXcore.g:7434:1: ( ( rule__XReference__ContainerAssignment_2_2_0 ) )
            // InternalXcore.g:7435:2: ( rule__XReference__ContainerAssignment_2_2_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getContainerAssignment_2_2_0()); 
            }
            // InternalXcore.g:7436:2: ( rule__XReference__ContainerAssignment_2_2_0 )
            // InternalXcore.g:7436:3: rule__XReference__ContainerAssignment_2_2_0
            {
            pushFollow(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:7444: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:7448:1: ( rule__XReference__Group_2_2__1__Impl )
            // InternalXcore.g:7449:2: rule__XReference__Group_2_2__1__Impl
            {
            pushFollow(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:7455: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:7459:1: ( ( ( rule__XReference__ResolveProxiesAssignment_2_2_1 )? ) )
            // InternalXcore.g:7460:1: ( ( rule__XReference__ResolveProxiesAssignment_2_2_1 )? )
            {
            // InternalXcore.g:7460:1: ( ( rule__XReference__ResolveProxiesAssignment_2_2_1 )? )
            // InternalXcore.g:7461:2: ( rule__XReference__ResolveProxiesAssignment_2_2_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getResolveProxiesAssignment_2_2_1()); 
            }
            // InternalXcore.g:7462:2: ( 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:7462:3: rule__XReference__ResolveProxiesAssignment_2_2_1
                    {
                    pushFollow(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:7471: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:7475:1: ( rule__XReference__Group_2_3__0__Impl rule__XReference__Group_2_3__1 )
            // InternalXcore.g:7476:2: rule__XReference__Group_2_3__0__Impl rule__XReference__Group_2_3__1
            {
            pushFollow(FOLLOW_47);
            rule__XReference__Group_2_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:7483: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:7487:1: ( ( ( rule__XReference__ResolveProxiesAssignment_2_3_0 ) ) )
            // InternalXcore.g:7488:1: ( ( rule__XReference__ResolveProxiesAssignment_2_3_0 ) )
            {
            // InternalXcore.g:7488:1: ( ( rule__XReference__ResolveProxiesAssignment_2_3_0 ) )
            // InternalXcore.g:7489:2: ( rule__XReference__ResolveProxiesAssignment_2_3_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getResolveProxiesAssignment_2_3_0()); 
            }
            // InternalXcore.g:7490:2: ( rule__XReference__ResolveProxiesAssignment_2_3_0 )
            // InternalXcore.g:7490:3: rule__XReference__ResolveProxiesAssignment_2_3_0
            {
            pushFollow(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:7498: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:7502:1: ( rule__XReference__Group_2_3__1__Impl )
            // InternalXcore.g:7503:2: rule__XReference__Group_2_3__1__Impl
            {
            pushFollow(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:7509: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:7513:1: ( ( ( rule__XReference__ContainerAssignment_2_3_1 ) ) )
            // InternalXcore.g:7514:1: ( ( rule__XReference__ContainerAssignment_2_3_1 ) )
            {
            // InternalXcore.g:7514:1: ( ( rule__XReference__ContainerAssignment_2_3_1 ) )
            // InternalXcore.g:7515:2: ( rule__XReference__ContainerAssignment_2_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getContainerAssignment_2_3_1()); 
            }
            // InternalXcore.g:7516:2: ( rule__XReference__ContainerAssignment_2_3_1 )
            // InternalXcore.g:7516:3: rule__XReference__ContainerAssignment_2_3_1
            {
            pushFollow(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:7525: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:7529:1: ( rule__XReference__Group_2_4__0__Impl rule__XReference__Group_2_4__1 )
            // InternalXcore.g:7530:2: rule__XReference__Group_2_4__0__Impl rule__XReference__Group_2_4__1
            {
            pushFollow(FOLLOW_48);
            rule__XReference__Group_2_4__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:7537: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:7541:1: ( ( 'refers' ) )
            // InternalXcore.g:7542:1: ( 'refers' )
            {
            // InternalXcore.g:7542:1: ( 'refers' )
            // InternalXcore.g:7543:2: 'refers'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getRefersKeyword_2_4_0()); 
            }
            match(input,45,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:7552: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:7556:1: ( rule__XReference__Group_2_4__1__Impl )
            // InternalXcore.g:7557:2: rule__XReference__Group_2_4__1__Impl
            {
            pushFollow(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:7563: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:7567:1: ( ( ( rule__XReference__LocalAssignment_2_4_1 )? ) )
            // InternalXcore.g:7568:1: ( ( rule__XReference__LocalAssignment_2_4_1 )? )
            {
            // InternalXcore.g:7568:1: ( ( rule__XReference__LocalAssignment_2_4_1 )? )
            // InternalXcore.g:7569:2: ( rule__XReference__LocalAssignment_2_4_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getLocalAssignment_2_4_1()); 
            }
            // InternalXcore.g:7570:2: ( 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:7570:3: rule__XReference__LocalAssignment_2_4_1
                    {
                    pushFollow(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:7579: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:7583:1: ( rule__XReference__Group_2_5__0__Impl rule__XReference__Group_2_5__1 )
            // InternalXcore.g:7584:2: rule__XReference__Group_2_5__0__Impl rule__XReference__Group_2_5__1
            {
            pushFollow(FOLLOW_49);
            rule__XReference__Group_2_5__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:7591: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:7595:1: ( ( ( rule__XReference__LocalAssignment_2_5_0 ) ) )
            // InternalXcore.g:7596:1: ( ( rule__XReference__LocalAssignment_2_5_0 ) )
            {
            // InternalXcore.g:7596:1: ( ( rule__XReference__LocalAssignment_2_5_0 ) )
            // InternalXcore.g:7597:2: ( rule__XReference__LocalAssignment_2_5_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getLocalAssignment_2_5_0()); 
            }
            // InternalXcore.g:7598:2: ( rule__XReference__LocalAssignment_2_5_0 )
            // InternalXcore.g:7598:3: rule__XReference__LocalAssignment_2_5_0
            {
            pushFollow(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:7606: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:7610:1: ( rule__XReference__Group_2_5__1__Impl )
            // InternalXcore.g:7611:2: rule__XReference__Group_2_5__1__Impl
            {
            pushFollow(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:7617: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:7621:1: ( ( 'refers' ) )
            // InternalXcore.g:7622:1: ( 'refers' )
            {
            // InternalXcore.g:7622:1: ( 'refers' )
            // InternalXcore.g:7623:2: 'refers'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getRefersKeyword_2_5_1()); 
            }
            match(input,45,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:7633: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:7637:1: ( rule__XReference__Group_7__0__Impl rule__XReference__Group_7__1 )
            // InternalXcore.g:7638:2: rule__XReference__Group_7__0__Impl rule__XReference__Group_7__1
            {
            pushFollow(FOLLOW_6);
            rule__XReference__Group_7__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:7645: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:7649:1: ( ( 'opposite' ) )
            // InternalXcore.g:7650:1: ( 'opposite' )
            {
            // InternalXcore.g:7650:1: ( 'opposite' )
            // InternalXcore.g:7651:2: 'opposite'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getOppositeKeyword_7_0()); 
            }
            match(input,42,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:7660: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:7664:1: ( rule__XReference__Group_7__1__Impl )
            // InternalXcore.g:7665:2: rule__XReference__Group_7__1__Impl
            {
            pushFollow(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:7671: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:7675:1: ( ( ( rule__XReference__OppositeAssignment_7_1 ) ) )
            // InternalXcore.g:7676:1: ( ( rule__XReference__OppositeAssignment_7_1 ) )
            {
            // InternalXcore.g:7676:1: ( ( rule__XReference__OppositeAssignment_7_1 ) )
            // InternalXcore.g:7677:2: ( rule__XReference__OppositeAssignment_7_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getOppositeAssignment_7_1()); 
            }
            // InternalXcore.g:7678:2: ( rule__XReference__OppositeAssignment_7_1 )
            // InternalXcore.g:7678:3: rule__XReference__OppositeAssignment_7_1
            {
            pushFollow(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:7687: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:7691:1: ( rule__XReference__Group_8__0__Impl rule__XReference__Group_8__1 )
            // InternalXcore.g:7692:2: rule__XReference__Group_8__0__Impl rule__XReference__Group_8__1
            {
            pushFollow(FOLLOW_6);
            rule__XReference__Group_8__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:7699: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:7703:1: ( ( 'keys' ) )
            // InternalXcore.g:7704:1: ( 'keys' )
            {
            // InternalXcore.g:7704:1: ( 'keys' )
            // InternalXcore.g:7705:2: 'keys'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getKeysKeyword_8_0()); 
            }
            match(input,38,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:7714: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:7718:1: ( rule__XReference__Group_8__1__Impl rule__XReference__Group_8__2 )
            // InternalXcore.g:7719:2: rule__XReference__Group_8__1__Impl rule__XReference__Group_8__2
            {
            pushFollow(FOLLOW_38);
            rule__XReference__Group_8__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:7726: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:7730:1: ( ( ( rule__XReference__KeysAssignment_8_1 ) ) )
            // InternalXcore.g:7731:1: ( ( rule__XReference__KeysAssignment_8_1 ) )
            {
            // InternalXcore.g:7731:1: ( ( rule__XReference__KeysAssignment_8_1 ) )
            // InternalXcore.g:7732:2: ( rule__XReference__KeysAssignment_8_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getKeysAssignment_8_1()); 
            }
            // InternalXcore.g:7733:2: ( rule__XReference__KeysAssignment_8_1 )
            // InternalXcore.g:7733:3: rule__XReference__KeysAssignment_8_1
            {
            pushFollow(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:7741: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:7745:1: ( rule__XReference__Group_8__2__Impl )
            // InternalXcore.g:7746:2: rule__XReference__Group_8__2__Impl
            {
            pushFollow(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:7752: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:7756:1: ( ( ( rule__XReference__Group_8_2__0 )* ) )
            // InternalXcore.g:7757:1: ( ( rule__XReference__Group_8_2__0 )* )
            {
            // InternalXcore.g:7757:1: ( ( rule__XReference__Group_8_2__0 )* )
            // InternalXcore.g:7758:2: ( rule__XReference__Group_8_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getGroup_8_2()); 
            }
            // InternalXcore.g:7759:2: ( 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:7759:3: rule__XReference__Group_8_2__0
            	    {
            	    pushFollow(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:7768: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:7772:1: ( rule__XReference__Group_8_2__0__Impl rule__XReference__Group_8_2__1 )
            // InternalXcore.g:7773:2: rule__XReference__Group_8_2__0__Impl rule__XReference__Group_8_2__1
            {
            pushFollow(FOLLOW_6);
            rule__XReference__Group_8_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:7780: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:7784:1: ( ( ',' ) )
            // InternalXcore.g:7785:1: ( ',' )
            {
            // InternalXcore.g:7785:1: ( ',' )
            // InternalXcore.g:7786:2: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getCommaKeyword_8_2_0()); 
            }
            match(input,87,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:7795: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:7799:1: ( rule__XReference__Group_8_2__1__Impl )
            // InternalXcore.g:7800:2: rule__XReference__Group_8_2__1__Impl
            {
            pushFollow(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:7806: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:7810:1: ( ( ( rule__XReference__KeysAssignment_8_2_1 ) ) )
            // InternalXcore.g:7811:1: ( ( rule__XReference__KeysAssignment_8_2_1 ) )
            {
            // InternalXcore.g:7811:1: ( ( rule__XReference__KeysAssignment_8_2_1 ) )
            // InternalXcore.g:7812:2: ( rule__XReference__KeysAssignment_8_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getKeysAssignment_8_2_1()); 
            }
            // InternalXcore.g:7813:2: ( rule__XReference__KeysAssignment_8_2_1 )
            // InternalXcore.g:7813:3: rule__XReference__KeysAssignment_8_2_1
            {
            pushFollow(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:7822: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:7826:1: ( rule__XReference__Group_9_0__0__Impl rule__XReference__Group_9_0__1 )
            // InternalXcore.g:7827:2: rule__XReference__Group_9_0__0__Impl rule__XReference__Group_9_0__1
            {
            pushFollow(FOLLOW_26);
            rule__XReference__Group_9_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:7834: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:7838:1: ( ( 'get' ) )
            // InternalXcore.g:7839:1: ( 'get' )
            {
            // InternalXcore.g:7839:1: ( 'get' )
            // InternalXcore.g:7840:2: 'get'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getGetKeyword_9_0_0()); 
            }
            match(input,20,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:7849: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:7853:1: ( rule__XReference__Group_9_0__1__Impl )
            // InternalXcore.g:7854:2: rule__XReference__Group_9_0__1__Impl
            {
            pushFollow(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:7860: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:7864:1: ( ( ( rule__XReference__GetBodyAssignment_9_0_1 ) ) )
            // InternalXcore.g:7865:1: ( ( rule__XReference__GetBodyAssignment_9_0_1 ) )
            {
            // InternalXcore.g:7865:1: ( ( rule__XReference__GetBodyAssignment_9_0_1 ) )
            // InternalXcore.g:7866:2: ( rule__XReference__GetBodyAssignment_9_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getGetBodyAssignment_9_0_1()); 
            }
            // InternalXcore.g:7867:2: ( rule__XReference__GetBodyAssignment_9_0_1 )
            // InternalXcore.g:7867:3: rule__XReference__GetBodyAssignment_9_0_1
            {
            pushFollow(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:7876: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:7880:1: ( rule__XReference__Group_9_1__0__Impl rule__XReference__Group_9_1__1 )
            // InternalXcore.g:7881:2: rule__XReference__Group_9_1__0__Impl rule__XReference__Group_9_1__1
            {
            pushFollow(FOLLOW_26);
            rule__XReference__Group_9_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:7888: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:7892:1: ( ( 'set' ) )
            // InternalXcore.g:7893:1: ( 'set' )
            {
            // InternalXcore.g:7893:1: ( 'set' )
            // InternalXcore.g:7894:2: 'set'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getSetKeyword_9_1_0()); 
            }
            match(input,22,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:7903: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:7907:1: ( rule__XReference__Group_9_1__1__Impl )
            // InternalXcore.g:7908:2: rule__XReference__Group_9_1__1__Impl
            {
            pushFollow(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:7914: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:7918:1: ( ( ( rule__XReference__SetBodyAssignment_9_1_1 ) ) )
            // InternalXcore.g:7919:1: ( ( rule__XReference__SetBodyAssignment_9_1_1 ) )
            {
            // InternalXcore.g:7919:1: ( ( rule__XReference__SetBodyAssignment_9_1_1 ) )
            // InternalXcore.g:7920:2: ( rule__XReference__SetBodyAssignment_9_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getSetBodyAssignment_9_1_1()); 
            }
            // InternalXcore.g:7921:2: ( rule__XReference__SetBodyAssignment_9_1_1 )
            // InternalXcore.g:7921:3: rule__XReference__SetBodyAssignment_9_1_1
            {
            pushFollow(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:7930: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:7934:1: ( rule__XReference__Group_9_2__0__Impl rule__XReference__Group_9_2__1 )
            // InternalXcore.g:7935:2: rule__XReference__Group_9_2__0__Impl rule__XReference__Group_9_2__1
            {
            pushFollow(FOLLOW_26);
            rule__XReference__Group_9_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:7942: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:7946:1: ( ( 'isSet' ) )
            // InternalXcore.g:7947:1: ( 'isSet' )
            {
            // InternalXcore.g:7947:1: ( 'isSet' )
            // InternalXcore.g:7948:2: 'isSet'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getIsSetKeyword_9_2_0()); 
            }
            match(input,21,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:7957: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:7961:1: ( rule__XReference__Group_9_2__1__Impl )
            // InternalXcore.g:7962:2: rule__XReference__Group_9_2__1__Impl
            {
            pushFollow(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:7968: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:7972:1: ( ( ( rule__XReference__IsSetBodyAssignment_9_2_1 ) ) )
            // InternalXcore.g:7973:1: ( ( rule__XReference__IsSetBodyAssignment_9_2_1 ) )
            {
            // InternalXcore.g:7973:1: ( ( rule__XReference__IsSetBodyAssignment_9_2_1 ) )
            // InternalXcore.g:7974:2: ( rule__XReference__IsSetBodyAssignment_9_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getIsSetBodyAssignment_9_2_1()); 
            }
            // InternalXcore.g:7975:2: ( rule__XReference__IsSetBodyAssignment_9_2_1 )
            // InternalXcore.g:7975:3: rule__XReference__IsSetBodyAssignment_9_2_1
            {
            pushFollow(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:7984: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:7988:1: ( rule__XReference__Group_9_3__0__Impl rule__XReference__Group_9_3__1 )
            // InternalXcore.g:7989:2: rule__XReference__Group_9_3__0__Impl rule__XReference__Group_9_3__1
            {
            pushFollow(FOLLOW_26);
            rule__XReference__Group_9_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:7996: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:8000:1: ( ( 'unset' ) )
            // InternalXcore.g:8001:1: ( 'unset' )
            {
            // InternalXcore.g:8001:1: ( 'unset' )
            // InternalXcore.g:8002:2: 'unset'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getUnsetKeyword_9_3_0()); 
            }
            match(input,23,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:8011: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:8015:1: ( rule__XReference__Group_9_3__1__Impl )
            // InternalXcore.g:8016:2: rule__XReference__Group_9_3__1__Impl
            {
            pushFollow(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:8022: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:8026:1: ( ( ( rule__XReference__UnsetBodyAssignment_9_3_1 ) ) )
            // InternalXcore.g:8027:1: ( ( rule__XReference__UnsetBodyAssignment_9_3_1 ) )
            {
            // InternalXcore.g:8027:1: ( ( rule__XReference__UnsetBodyAssignment_9_3_1 ) )
            // InternalXcore.g:8028:2: ( rule__XReference__UnsetBodyAssignment_9_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getUnsetBodyAssignment_9_3_1()); 
            }
            // InternalXcore.g:8029:2: ( rule__XReference__UnsetBodyAssignment_9_3_1 )
            // InternalXcore.g:8029:3: rule__XReference__UnsetBodyAssignment_9_3_1
            {
            pushFollow(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:8038: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:8042:1: ( rule__XOperation__Group__0__Impl rule__XOperation__Group__1 )
            // InternalXcore.g:8043:2: rule__XOperation__Group__0__Impl rule__XOperation__Group__1
            {
            pushFollow(FOLLOW_50);
            rule__XOperation__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8050:1: rule__XOperation__Group__0__Impl : ( () ) ;
    public final void rule__XOperation__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:8054:1: ( ( () ) )
            // InternalXcore.g:8055:1: ( () )
            {
            // InternalXcore.g:8055:1: ( () )
            // InternalXcore.g:8056:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getXOperationAction_0()); 
            }
            // InternalXcore.g:8057:2: ()
            // InternalXcore.g:8057:3: 
            {
            }

            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:8065: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:8069:1: ( rule__XOperation__Group__1__Impl rule__XOperation__Group__2 )
            // InternalXcore.g:8070:2: rule__XOperation__Group__1__Impl rule__XOperation__Group__2
            {
            pushFollow(FOLLOW_50);
            rule__XOperation__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8077: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:8081:1: ( ( ( rule__XOperation__AnnotationsAssignment_1 )* ) )
            // InternalXcore.g:8082:1: ( ( rule__XOperation__AnnotationsAssignment_1 )* )
            {
            // InternalXcore.g:8082:1: ( ( rule__XOperation__AnnotationsAssignment_1 )* )
            // InternalXcore.g:8083:2: ( rule__XOperation__AnnotationsAssignment_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getAnnotationsAssignment_1()); 
            }
            // InternalXcore.g:8084:2: ( 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:8084:3: rule__XOperation__AnnotationsAssignment_1
            	    {
            	    pushFollow(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:8092: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:8096:1: ( rule__XOperation__Group__2__Impl rule__XOperation__Group__3 )
            // InternalXcore.g:8097:2: rule__XOperation__Group__2__Impl rule__XOperation__Group__3
            {
            pushFollow(FOLLOW_51);
            rule__XOperation__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8104:1: rule__XOperation__Group__2__Impl : ( 'op' ) ;
    public final void rule__XOperation__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:8108:1: ( ( 'op' ) )
            // InternalXcore.g:8109:1: ( 'op' )
            {
            // InternalXcore.g:8109:1: ( 'op' )
            // InternalXcore.g:8110:2: 'op'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getOpKeyword_2()); 
            }
            match(input,41,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:8119: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:8123:1: ( rule__XOperation__Group__3__Impl rule__XOperation__Group__4 )
            // InternalXcore.g:8124:2: rule__XOperation__Group__3__Impl rule__XOperation__Group__4
            {
            pushFollow(FOLLOW_51);
            rule__XOperation__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8131: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:8135:1: ( ( ( rule__XOperation__Alternatives_3 )? ) )
            // InternalXcore.g:8136:1: ( ( rule__XOperation__Alternatives_3 )? )
            {
            // InternalXcore.g:8136:1: ( ( rule__XOperation__Alternatives_3 )? )
            // InternalXcore.g:8137:2: ( rule__XOperation__Alternatives_3 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getAlternatives_3()); 
            }
            // InternalXcore.g:8138:2: ( 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:8138:3: rule__XOperation__Alternatives_3
                    {
                    pushFollow(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:8146: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:8150:1: ( rule__XOperation__Group__4__Impl rule__XOperation__Group__5 )
            // InternalXcore.g:8151:2: rule__XOperation__Group__4__Impl rule__XOperation__Group__5
            {
            pushFollow(FOLLOW_51);
            rule__XOperation__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8158: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:8162:1: ( ( ( rule__XOperation__Group_4__0 )? ) )
            // InternalXcore.g:8163:1: ( ( rule__XOperation__Group_4__0 )? )
            {
            // InternalXcore.g:8163:1: ( ( rule__XOperation__Group_4__0 )? )
            // InternalXcore.g:8164:2: ( rule__XOperation__Group_4__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getGroup_4()); 
            }
            // InternalXcore.g:8165:2: ( 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:8165:3: rule__XOperation__Group_4__0
                    {
                    pushFollow(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:8173: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:8177:1: ( rule__XOperation__Group__5__Impl rule__XOperation__Group__6 )
            // InternalXcore.g:8178:2: rule__XOperation__Group__5__Impl rule__XOperation__Group__6
            {
            pushFollow(FOLLOW_40);
            rule__XOperation__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8185: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:8189:1: ( ( ( rule__XOperation__Alternatives_5 ) ) )
            // InternalXcore.g:8190:1: ( ( rule__XOperation__Alternatives_5 ) )
            {
            // InternalXcore.g:8190:1: ( ( rule__XOperation__Alternatives_5 ) )
            // InternalXcore.g:8191:2: ( rule__XOperation__Alternatives_5 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getAlternatives_5()); 
            }
            // InternalXcore.g:8192:2: ( rule__XOperation__Alternatives_5 )
            // InternalXcore.g:8192:3: rule__XOperation__Alternatives_5
            {
            pushFollow(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:8200: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:8204:1: ( rule__XOperation__Group__6__Impl rule__XOperation__Group__7 )
            // InternalXcore.g:8205:2: rule__XOperation__Group__6__Impl rule__XOperation__Group__7
            {
            pushFollow(FOLLOW_40);
            rule__XOperation__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8212: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:8216:1: ( ( ( rule__XOperation__MultiplicityAssignment_6 )? ) )
            // InternalXcore.g:8217:1: ( ( rule__XOperation__MultiplicityAssignment_6 )? )
            {
            // InternalXcore.g:8217:1: ( ( rule__XOperation__MultiplicityAssignment_6 )? )
            // InternalXcore.g:8218:2: ( rule__XOperation__MultiplicityAssignment_6 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getMultiplicityAssignment_6()); 
            }
            // InternalXcore.g:8219:2: ( 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:8219:3: rule__XOperation__MultiplicityAssignment_6
                    {
                    pushFollow(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:8227: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:8231:1: ( rule__XOperation__Group__7__Impl rule__XOperation__Group__8 )
            // InternalXcore.g:8232:2: rule__XOperation__Group__7__Impl rule__XOperation__Group__8
            {
            pushFollow(FOLLOW_12);
            rule__XOperation__Group__7__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8239: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:8243:1: ( ( ( rule__XOperation__NameAssignment_7 ) ) )
            // InternalXcore.g:8244:1: ( ( rule__XOperation__NameAssignment_7 ) )
            {
            // InternalXcore.g:8244:1: ( ( rule__XOperation__NameAssignment_7 ) )
            // InternalXcore.g:8245:2: ( rule__XOperation__NameAssignment_7 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getNameAssignment_7()); 
            }
            // InternalXcore.g:8246:2: ( rule__XOperation__NameAssignment_7 )
            // InternalXcore.g:8246:3: rule__XOperation__NameAssignment_7
            {
            pushFollow(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:8254: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:8258:1: ( rule__XOperation__Group__8__Impl rule__XOperation__Group__9 )
            // InternalXcore.g:8259:2: rule__XOperation__Group__8__Impl rule__XOperation__Group__9
            {
            pushFollow(FOLLOW_52);
            rule__XOperation__Group__8__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8266:1: rule__XOperation__Group__8__Impl : ( '(' ) ;
    public final void rule__XOperation__Group__8__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:8270:1: ( ( '(' ) )
            // InternalXcore.g:8271:1: ( '(' )
            {
            // InternalXcore.g:8271:1: ( '(' )
            // InternalXcore.g:8272:2: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getLeftParenthesisKeyword_8()); 
            }
            match(input,85,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:8281: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:8285:1: ( rule__XOperation__Group__9__Impl rule__XOperation__Group__10 )
            // InternalXcore.g:8286:2: rule__XOperation__Group__9__Impl rule__XOperation__Group__10
            {
            pushFollow(FOLLOW_52);
            rule__XOperation__Group__9__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8293: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:8297:1: ( ( ( rule__XOperation__Group_9__0 )? ) )
            // InternalXcore.g:8298:1: ( ( rule__XOperation__Group_9__0 )? )
            {
            // InternalXcore.g:8298:1: ( ( rule__XOperation__Group_9__0 )? )
            // InternalXcore.g:8299:2: ( rule__XOperation__Group_9__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getGroup_9()); 
            }
            // InternalXcore.g:8300:2: ( 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:8300:3: rule__XOperation__Group_9__0
                    {
                    pushFollow(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:8308: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:8312:1: ( rule__XOperation__Group__10__Impl rule__XOperation__Group__11 )
            // InternalXcore.g:8313:2: rule__XOperation__Group__10__Impl rule__XOperation__Group__11
            {
            pushFollow(FOLLOW_53);
            rule__XOperation__Group__10__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8320:1: rule__XOperation__Group__10__Impl : ( ')' ) ;
    public final void rule__XOperation__Group__10__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:8324:1: ( ( ')' ) )
            // InternalXcore.g:8325:1: ( ')' )
            {
            // InternalXcore.g:8325:1: ( ')' )
            // InternalXcore.g:8326:2: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getRightParenthesisKeyword_10()); 
            }
            match(input,86,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:8335: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:8339:1: ( rule__XOperation__Group__11__Impl rule__XOperation__Group__12 )
            // InternalXcore.g:8340:2: rule__XOperation__Group__11__Impl rule__XOperation__Group__12
            {
            pushFollow(FOLLOW_53);
            rule__XOperation__Group__11__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8347: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:8351:1: ( ( ( rule__XOperation__Group_11__0 )? ) )
            // InternalXcore.g:8352:1: ( ( rule__XOperation__Group_11__0 )? )
            {
            // InternalXcore.g:8352:1: ( ( rule__XOperation__Group_11__0 )? )
            // InternalXcore.g:8353:2: ( rule__XOperation__Group_11__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getGroup_11()); 
            }
            // InternalXcore.g:8354:2: ( 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:8354:3: rule__XOperation__Group_11__0
                    {
                    pushFollow(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:8362: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:8366:1: ( rule__XOperation__Group__12__Impl )
            // InternalXcore.g:8367:2: rule__XOperation__Group__12__Impl
            {
            pushFollow(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:8373: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:8377:1: ( ( ( rule__XOperation__BodyAssignment_12 )? ) )
            // InternalXcore.g:8378:1: ( ( rule__XOperation__BodyAssignment_12 )? )
            {
            // InternalXcore.g:8378:1: ( ( rule__XOperation__BodyAssignment_12 )? )
            // InternalXcore.g:8379:2: ( rule__XOperation__BodyAssignment_12 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getBodyAssignment_12()); 
            }
            // InternalXcore.g:8380:2: ( 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:8380:3: rule__XOperation__BodyAssignment_12
                    {
                    pushFollow(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:8389: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:8393:1: ( rule__XOperation__Group_3_0__0__Impl rule__XOperation__Group_3_0__1 )
            // InternalXcore.g:8394:2: rule__XOperation__Group_3_0__0__Impl rule__XOperation__Group_3_0__1
            {
            pushFollow(FOLLOW_54);
            rule__XOperation__Group_3_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8401: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:8405:1: ( ( ( rule__XOperation__UnorderedAssignment_3_0_0 ) ) )
            // InternalXcore.g:8406:1: ( ( rule__XOperation__UnorderedAssignment_3_0_0 ) )
            {
            // InternalXcore.g:8406:1: ( ( rule__XOperation__UnorderedAssignment_3_0_0 ) )
            // InternalXcore.g:8407:2: ( rule__XOperation__UnorderedAssignment_3_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getUnorderedAssignment_3_0_0()); 
            }
            // InternalXcore.g:8408:2: ( rule__XOperation__UnorderedAssignment_3_0_0 )
            // InternalXcore.g:8408:3: rule__XOperation__UnorderedAssignment_3_0_0
            {
            pushFollow(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:8416: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:8420:1: ( rule__XOperation__Group_3_0__1__Impl )
            // InternalXcore.g:8421:2: rule__XOperation__Group_3_0__1__Impl
            {
            pushFollow(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:8427: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:8431:1: ( ( ( rule__XOperation__UniqueAssignment_3_0_1 )? ) )
            // InternalXcore.g:8432:1: ( ( rule__XOperation__UniqueAssignment_3_0_1 )? )
            {
            // InternalXcore.g:8432:1: ( ( rule__XOperation__UniqueAssignment_3_0_1 )? )
            // InternalXcore.g:8433:2: ( rule__XOperation__UniqueAssignment_3_0_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getUniqueAssignment_3_0_1()); 
            }
            // InternalXcore.g:8434:2: ( 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:8434:3: rule__XOperation__UniqueAssignment_3_0_1
                    {
                    pushFollow(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:8443: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:8447:1: ( rule__XOperation__Group_3_1__0__Impl rule__XOperation__Group_3_1__1 )
            // InternalXcore.g:8448:2: rule__XOperation__Group_3_1__0__Impl rule__XOperation__Group_3_1__1
            {
            pushFollow(FOLLOW_55);
            rule__XOperation__Group_3_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8455: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:8459:1: ( ( ( rule__XOperation__UniqueAssignment_3_1_0 ) ) )
            // InternalXcore.g:8460:1: ( ( rule__XOperation__UniqueAssignment_3_1_0 ) )
            {
            // InternalXcore.g:8460:1: ( ( rule__XOperation__UniqueAssignment_3_1_0 ) )
            // InternalXcore.g:8461:2: ( rule__XOperation__UniqueAssignment_3_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getUniqueAssignment_3_1_0()); 
            }
            // InternalXcore.g:8462:2: ( rule__XOperation__UniqueAssignment_3_1_0 )
            // InternalXcore.g:8462:3: rule__XOperation__UniqueAssignment_3_1_0
            {
            pushFollow(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:8470: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:8474:1: ( rule__XOperation__Group_3_1__1__Impl )
            // InternalXcore.g:8475:2: rule__XOperation__Group_3_1__1__Impl
            {
            pushFollow(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:8481: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:8485:1: ( ( ( rule__XOperation__UnorderedAssignment_3_1_1 )? ) )
            // InternalXcore.g:8486:1: ( ( rule__XOperation__UnorderedAssignment_3_1_1 )? )
            {
            // InternalXcore.g:8486:1: ( ( rule__XOperation__UnorderedAssignment_3_1_1 )? )
            // InternalXcore.g:8487:2: ( rule__XOperation__UnorderedAssignment_3_1_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getUnorderedAssignment_3_1_1()); 
            }
            // InternalXcore.g:8488:2: ( 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:8488:3: rule__XOperation__UnorderedAssignment_3_1_1
                    {
                    pushFollow(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:8497: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:8501:1: ( rule__XOperation__Group_4__0__Impl rule__XOperation__Group_4__1 )
            // InternalXcore.g:8502:2: rule__XOperation__Group_4__0__Impl rule__XOperation__Group_4__1
            {
            pushFollow(FOLLOW_24);
            rule__XOperation__Group_4__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8509:1: rule__XOperation__Group_4__0__Impl : ( '<' ) ;
    public final void rule__XOperation__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:8513:1: ( ( '<' ) )
            // InternalXcore.g:8514:1: ( '<' )
            {
            // InternalXcore.g:8514:1: ( '<' )
            // InternalXcore.g:8515:2: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getLessThanSignKeyword_4_0()); 
            }
            match(input,66,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:8524: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:8528:1: ( rule__XOperation__Group_4__1__Impl rule__XOperation__Group_4__2 )
            // InternalXcore.g:8529:2: rule__XOperation__Group_4__1__Impl rule__XOperation__Group_4__2
            {
            pushFollow(FOLLOW_25);
            rule__XOperation__Group_4__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8536: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:8540:1: ( ( ( rule__XOperation__TypeParametersAssignment_4_1 ) ) )
            // InternalXcore.g:8541:1: ( ( rule__XOperation__TypeParametersAssignment_4_1 ) )
            {
            // InternalXcore.g:8541:1: ( ( rule__XOperation__TypeParametersAssignment_4_1 ) )
            // InternalXcore.g:8542:2: ( rule__XOperation__TypeParametersAssignment_4_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getTypeParametersAssignment_4_1()); 
            }
            // InternalXcore.g:8543:2: ( rule__XOperation__TypeParametersAssignment_4_1 )
            // InternalXcore.g:8543:3: rule__XOperation__TypeParametersAssignment_4_1
            {
            pushFollow(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:8551: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:8555:1: ( rule__XOperation__Group_4__2__Impl rule__XOperation__Group_4__3 )
            // InternalXcore.g:8556:2: rule__XOperation__Group_4__2__Impl rule__XOperation__Group_4__3
            {
            pushFollow(FOLLOW_25);
            rule__XOperation__Group_4__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8563: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:8567:1: ( ( ( rule__XOperation__Group_4_2__0 )* ) )
            // InternalXcore.g:8568:1: ( ( rule__XOperation__Group_4_2__0 )* )
            {
            // InternalXcore.g:8568:1: ( ( rule__XOperation__Group_4_2__0 )* )
            // InternalXcore.g:8569:2: ( rule__XOperation__Group_4_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getGroup_4_2()); 
            }
            // InternalXcore.g:8570:2: ( 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:8570:3: rule__XOperation__Group_4_2__0
            	    {
            	    pushFollow(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:8578: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:8582:1: ( rule__XOperation__Group_4__3__Impl )
            // InternalXcore.g:8583:2: rule__XOperation__Group_4__3__Impl
            {
            pushFollow(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:8589:1: rule__XOperation__Group_4__3__Impl : ( '>' ) ;
    public final void rule__XOperation__Group_4__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:8593:1: ( ( '>' ) )
            // InternalXcore.g:8594:1: ( '>' )
            {
            // InternalXcore.g:8594:1: ( '>' )
            // InternalXcore.g:8595:2: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getGreaterThanSignKeyword_4_3()); 
            }
            match(input,65,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:8605: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:8609:1: ( rule__XOperation__Group_4_2__0__Impl rule__XOperation__Group_4_2__1 )
            // InternalXcore.g:8610:2: rule__XOperation__Group_4_2__0__Impl rule__XOperation__Group_4_2__1
            {
            pushFollow(FOLLOW_24);
            rule__XOperation__Group_4_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8617: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:8621:1: ( ( ',' ) )
            // InternalXcore.g:8622:1: ( ',' )
            {
            // InternalXcore.g:8622:1: ( ',' )
            // InternalXcore.g:8623:2: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getCommaKeyword_4_2_0()); 
            }
            match(input,87,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:8632: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:8636:1: ( rule__XOperation__Group_4_2__1__Impl )
            // InternalXcore.g:8637:2: rule__XOperation__Group_4_2__1__Impl
            {
            pushFollow(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:8643: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:8647:1: ( ( ( rule__XOperation__TypeParametersAssignment_4_2_1 ) ) )
            // InternalXcore.g:8648:1: ( ( rule__XOperation__TypeParametersAssignment_4_2_1 ) )
            {
            // InternalXcore.g:8648:1: ( ( rule__XOperation__TypeParametersAssignment_4_2_1 ) )
            // InternalXcore.g:8649:2: ( rule__XOperation__TypeParametersAssignment_4_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getTypeParametersAssignment_4_2_1()); 
            }
            // InternalXcore.g:8650:2: ( rule__XOperation__TypeParametersAssignment_4_2_1 )
            // InternalXcore.g:8650:3: rule__XOperation__TypeParametersAssignment_4_2_1
            {
            pushFollow(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:8659: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:8663:1: ( rule__XOperation__Group_9__0__Impl rule__XOperation__Group_9__1 )
            // InternalXcore.g:8664:2: rule__XOperation__Group_9__0__Impl rule__XOperation__Group_9__1
            {
            pushFollow(FOLLOW_38);
            rule__XOperation__Group_9__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8671: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:8675:1: ( ( ( rule__XOperation__ParametersAssignment_9_0 ) ) )
            // InternalXcore.g:8676:1: ( ( rule__XOperation__ParametersAssignment_9_0 ) )
            {
            // InternalXcore.g:8676:1: ( ( rule__XOperation__ParametersAssignment_9_0 ) )
            // InternalXcore.g:8677:2: ( rule__XOperation__ParametersAssignment_9_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getParametersAssignment_9_0()); 
            }
            // InternalXcore.g:8678:2: ( rule__XOperation__ParametersAssignment_9_0 )
            // InternalXcore.g:8678:3: rule__XOperation__ParametersAssignment_9_0
            {
            pushFollow(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:8686: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:8690:1: ( rule__XOperation__Group_9__1__Impl )
            // InternalXcore.g:8691:2: rule__XOperation__Group_9__1__Impl
            {
            pushFollow(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:8697: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:8701:1: ( ( ( rule__XOperation__Group_9_1__0 )* ) )
            // InternalXcore.g:8702:1: ( ( rule__XOperation__Group_9_1__0 )* )
            {
            // InternalXcore.g:8702:1: ( ( rule__XOperation__Group_9_1__0 )* )
            // InternalXcore.g:8703:2: ( rule__XOperation__Group_9_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getGroup_9_1()); 
            }
            // InternalXcore.g:8704:2: ( 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:8704:3: rule__XOperation__Group_9_1__0
            	    {
            	    pushFollow(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:8713: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:8717:1: ( rule__XOperation__Group_9_1__0__Impl rule__XOperation__Group_9_1__1 )
            // InternalXcore.g:8718:2: rule__XOperation__Group_9_1__0__Impl rule__XOperation__Group_9_1__1
            {
            pushFollow(FOLLOW_56);
            rule__XOperation__Group_9_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8725: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:8729:1: ( ( ',' ) )
            // InternalXcore.g:8730:1: ( ',' )
            {
            // InternalXcore.g:8730:1: ( ',' )
            // InternalXcore.g:8731:2: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getCommaKeyword_9_1_0()); 
            }
            match(input,87,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:8740: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:8744:1: ( rule__XOperation__Group_9_1__1__Impl )
            // InternalXcore.g:8745:2: rule__XOperation__Group_9_1__1__Impl
            {
            pushFollow(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:8751: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:8755:1: ( ( ( rule__XOperation__ParametersAssignment_9_1_1 ) ) )
            // InternalXcore.g:8756:1: ( ( rule__XOperation__ParametersAssignment_9_1_1 ) )
            {
            // InternalXcore.g:8756:1: ( ( rule__XOperation__ParametersAssignment_9_1_1 ) )
            // InternalXcore.g:8757:2: ( rule__XOperation__ParametersAssignment_9_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getParametersAssignment_9_1_1()); 
            }
            // InternalXcore.g:8758:2: ( rule__XOperation__ParametersAssignment_9_1_1 )
            // InternalXcore.g:8758:3: rule__XOperation__ParametersAssignment_9_1_1
            {
            pushFollow(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:8767: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:8771:1: ( rule__XOperation__Group_11__0__Impl rule__XOperation__Group_11__1 )
            // InternalXcore.g:8772:2: rule__XOperation__Group_11__0__Impl rule__XOperation__Group_11__1
            {
            pushFollow(FOLLOW_11);
            rule__XOperation__Group_11__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8779: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:8783:1: ( ( 'throws' ) )
            // InternalXcore.g:8784:1: ( 'throws' )
            {
            // InternalXcore.g:8784:1: ( 'throws' )
            // InternalXcore.g:8785:2: 'throws'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getThrowsKeyword_11_0()); 
            }
            match(input,48,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:8794: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:8798:1: ( rule__XOperation__Group_11__1__Impl rule__XOperation__Group_11__2 )
            // InternalXcore.g:8799:2: rule__XOperation__Group_11__1__Impl rule__XOperation__Group_11__2
            {
            pushFollow(FOLLOW_38);
            rule__XOperation__Group_11__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8806: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:8810:1: ( ( ( rule__XOperation__ExceptionsAssignment_11_1 ) ) )
            // InternalXcore.g:8811:1: ( ( rule__XOperation__ExceptionsAssignment_11_1 ) )
            {
            // InternalXcore.g:8811:1: ( ( rule__XOperation__ExceptionsAssignment_11_1 ) )
            // InternalXcore.g:8812:2: ( rule__XOperation__ExceptionsAssignment_11_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getExceptionsAssignment_11_1()); 
            }
            // InternalXcore.g:8813:2: ( rule__XOperation__ExceptionsAssignment_11_1 )
            // InternalXcore.g:8813:3: rule__XOperation__ExceptionsAssignment_11_1
            {
            pushFollow(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:8821: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:8825:1: ( rule__XOperation__Group_11__2__Impl )
            // InternalXcore.g:8826:2: rule__XOperation__Group_11__2__Impl
            {
            pushFollow(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:8832: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:8836:1: ( ( ( rule__XOperation__Group_11_2__0 )* ) )
            // InternalXcore.g:8837:1: ( ( rule__XOperation__Group_11_2__0 )* )
            {
            // InternalXcore.g:8837:1: ( ( rule__XOperation__Group_11_2__0 )* )
            // InternalXcore.g:8838:2: ( rule__XOperation__Group_11_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getGroup_11_2()); 
            }
            // InternalXcore.g:8839:2: ( 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:8839:3: rule__XOperation__Group_11_2__0
            	    {
            	    pushFollow(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:8848: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:8852:1: ( rule__XOperation__Group_11_2__0__Impl rule__XOperation__Group_11_2__1 )
            // InternalXcore.g:8853:2: rule__XOperation__Group_11_2__0__Impl rule__XOperation__Group_11_2__1
            {
            pushFollow(FOLLOW_11);
            rule__XOperation__Group_11_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8860: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:8864:1: ( ( ',' ) )
            // InternalXcore.g:8865:1: ( ',' )
            {
            // InternalXcore.g:8865:1: ( ',' )
            // InternalXcore.g:8866:2: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getCommaKeyword_11_2_0()); 
            }
            match(input,87,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:8875: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:8879:1: ( rule__XOperation__Group_11_2__1__Impl )
            // InternalXcore.g:8880:2: rule__XOperation__Group_11_2__1__Impl
            {
            pushFollow(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:8886: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:8890:1: ( ( ( rule__XOperation__ExceptionsAssignment_11_2_1 ) ) )
            // InternalXcore.g:8891:1: ( ( rule__XOperation__ExceptionsAssignment_11_2_1 ) )
            {
            // InternalXcore.g:8891:1: ( ( rule__XOperation__ExceptionsAssignment_11_2_1 ) )
            // InternalXcore.g:8892:2: ( rule__XOperation__ExceptionsAssignment_11_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getExceptionsAssignment_11_2_1()); 
            }
            // InternalXcore.g:8893:2: ( rule__XOperation__ExceptionsAssignment_11_2_1 )
            // InternalXcore.g:8893:3: rule__XOperation__ExceptionsAssignment_11_2_1
            {
            pushFollow(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:8902: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:8906:1: ( rule__XParameter__Group__0__Impl rule__XParameter__Group__1 )
            // InternalXcore.g:8907:2: rule__XParameter__Group__0__Impl rule__XParameter__Group__1
            {
            pushFollow(FOLLOW_56);
            rule__XParameter__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8914: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:8918:1: ( ( ( rule__XParameter__AnnotationsAssignment_0 )* ) )
            // InternalXcore.g:8919:1: ( ( rule__XParameter__AnnotationsAssignment_0 )* )
            {
            // InternalXcore.g:8919:1: ( ( rule__XParameter__AnnotationsAssignment_0 )* )
            // InternalXcore.g:8920:2: ( rule__XParameter__AnnotationsAssignment_0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getAnnotationsAssignment_0()); 
            }
            // InternalXcore.g:8921:2: ( 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:8921:3: rule__XParameter__AnnotationsAssignment_0
            	    {
            	    pushFollow(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:8929: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:8933:1: ( rule__XParameter__Group__1__Impl rule__XParameter__Group__2 )
            // InternalXcore.g:8934:2: rule__XParameter__Group__1__Impl rule__XParameter__Group__2
            {
            pushFollow(FOLLOW_56);
            rule__XParameter__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8941: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:8945:1: ( ( ( rule__XParameter__Alternatives_1 )? ) )
            // InternalXcore.g:8946:1: ( ( rule__XParameter__Alternatives_1 )? )
            {
            // InternalXcore.g:8946:1: ( ( rule__XParameter__Alternatives_1 )? )
            // InternalXcore.g:8947:2: ( rule__XParameter__Alternatives_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getAlternatives_1()); 
            }
            // InternalXcore.g:8948:2: ( 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:8948:3: rule__XParameter__Alternatives_1
                    {
                    pushFollow(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:8956: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:8960:1: ( rule__XParameter__Group__2__Impl rule__XParameter__Group__3 )
            // InternalXcore.g:8961:2: rule__XParameter__Group__2__Impl rule__XParameter__Group__3
            {
            pushFollow(FOLLOW_40);
            rule__XParameter__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8968: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:8972:1: ( ( ( rule__XParameter__TypeAssignment_2 ) ) )
            // InternalXcore.g:8973:1: ( ( rule__XParameter__TypeAssignment_2 ) )
            {
            // InternalXcore.g:8973:1: ( ( rule__XParameter__TypeAssignment_2 ) )
            // InternalXcore.g:8974:2: ( rule__XParameter__TypeAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getTypeAssignment_2()); 
            }
            // InternalXcore.g:8975:2: ( rule__XParameter__TypeAssignment_2 )
            // InternalXcore.g:8975:3: rule__XParameter__TypeAssignment_2
            {
            pushFollow(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:8983: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:8987:1: ( rule__XParameter__Group__3__Impl rule__XParameter__Group__4 )
            // InternalXcore.g:8988:2: rule__XParameter__Group__3__Impl rule__XParameter__Group__4
            {
            pushFollow(FOLLOW_40);
            rule__XParameter__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:8995: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:8999:1: ( ( ( rule__XParameter__MultiplicityAssignment_3 )? ) )
            // InternalXcore.g:9000:1: ( ( rule__XParameter__MultiplicityAssignment_3 )? )
            {
            // InternalXcore.g:9000:1: ( ( rule__XParameter__MultiplicityAssignment_3 )? )
            // InternalXcore.g:9001:2: ( rule__XParameter__MultiplicityAssignment_3 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getMultiplicityAssignment_3()); 
            }
            // InternalXcore.g:9002:2: ( 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:9002:3: rule__XParameter__MultiplicityAssignment_3
                    {
                    pushFollow(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:9010: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:9014:1: ( rule__XParameter__Group__4__Impl )
            // InternalXcore.g:9015:2: rule__XParameter__Group__4__Impl
            {
            pushFollow(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:9021: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:9025:1: ( ( ( rule__XParameter__NameAssignment_4 ) ) )
            // InternalXcore.g:9026:1: ( ( rule__XParameter__NameAssignment_4 ) )
            {
            // InternalXcore.g:9026:1: ( ( rule__XParameter__NameAssignment_4 ) )
            // InternalXcore.g:9027:2: ( rule__XParameter__NameAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getNameAssignment_4()); 
            }
            // InternalXcore.g:9028:2: ( rule__XParameter__NameAssignment_4 )
            // InternalXcore.g:9028:3: rule__XParameter__NameAssignment_4
            {
            pushFollow(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:9037: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:9041:1: ( rule__XParameter__Group_1_0__0__Impl rule__XParameter__Group_1_0__1 )
            // InternalXcore.g:9042:2: rule__XParameter__Group_1_0__0__Impl rule__XParameter__Group_1_0__1
            {
            pushFollow(FOLLOW_54);
            rule__XParameter__Group_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:9049: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:9053:1: ( ( ( rule__XParameter__UnorderedAssignment_1_0_0 ) ) )
            // InternalXcore.g:9054:1: ( ( rule__XParameter__UnorderedAssignment_1_0_0 ) )
            {
            // InternalXcore.g:9054:1: ( ( rule__XParameter__UnorderedAssignment_1_0_0 ) )
            // InternalXcore.g:9055:2: ( rule__XParameter__UnorderedAssignment_1_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getUnorderedAssignment_1_0_0()); 
            }
            // InternalXcore.g:9056:2: ( rule__XParameter__UnorderedAssignment_1_0_0 )
            // InternalXcore.g:9056:3: rule__XParameter__UnorderedAssignment_1_0_0
            {
            pushFollow(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:9064: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:9068:1: ( rule__XParameter__Group_1_0__1__Impl )
            // InternalXcore.g:9069:2: rule__XParameter__Group_1_0__1__Impl
            {
            pushFollow(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:9075: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:9079:1: ( ( ( rule__XParameter__UniqueAssignment_1_0_1 )? ) )
            // InternalXcore.g:9080:1: ( ( rule__XParameter__UniqueAssignment_1_0_1 )? )
            {
            // InternalXcore.g:9080:1: ( ( rule__XParameter__UniqueAssignment_1_0_1 )? )
            // InternalXcore.g:9081:2: ( rule__XParameter__UniqueAssignment_1_0_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getUniqueAssignment_1_0_1()); 
            }
            // InternalXcore.g:9082:2: ( 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:9082:3: rule__XParameter__UniqueAssignment_1_0_1
                    {
                    pushFollow(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:9091: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:9095:1: ( rule__XParameter__Group_1_1__0__Impl rule__XParameter__Group_1_1__1 )
            // InternalXcore.g:9096:2: rule__XParameter__Group_1_1__0__Impl rule__XParameter__Group_1_1__1
            {
            pushFollow(FOLLOW_55);
            rule__XParameter__Group_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:9103: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:9107:1: ( ( ( rule__XParameter__UniqueAssignment_1_1_0 ) ) )
            // InternalXcore.g:9108:1: ( ( rule__XParameter__UniqueAssignment_1_1_0 ) )
            {
            // InternalXcore.g:9108:1: ( ( rule__XParameter__UniqueAssignment_1_1_0 ) )
            // InternalXcore.g:9109:2: ( rule__XParameter__UniqueAssignment_1_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getUniqueAssignment_1_1_0()); 
            }
            // InternalXcore.g:9110:2: ( rule__XParameter__UniqueAssignment_1_1_0 )
            // InternalXcore.g:9110:3: rule__XParameter__UniqueAssignment_1_1_0
            {
            pushFollow(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:9118: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:9122:1: ( rule__XParameter__Group_1_1__1__Impl )
            // InternalXcore.g:9123:2: rule__XParameter__Group_1_1__1__Impl
            {
            pushFollow(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:9129: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:9133:1: ( ( ( rule__XParameter__UnorderedAssignment_1_1_1 )? ) )
            // InternalXcore.g:9134:1: ( ( rule__XParameter__UnorderedAssignment_1_1_1 )? )
            {
            // InternalXcore.g:9134:1: ( ( rule__XParameter__UnorderedAssignment_1_1_1 )? )
            // InternalXcore.g:9135:2: ( rule__XParameter__UnorderedAssignment_1_1_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getUnorderedAssignment_1_1_1()); 
            }
            // InternalXcore.g:9136:2: ( 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:9136:3: rule__XParameter__UnorderedAssignment_1_1_1
                    {
                    pushFollow(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:9145: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:9149:1: ( rule__XTypeParameter__Group__0__Impl rule__XTypeParameter__Group__1 )
            // InternalXcore.g:9150:2: rule__XTypeParameter__Group__0__Impl rule__XTypeParameter__Group__1
            {
            pushFollow(FOLLOW_24);
            rule__XTypeParameter__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:9157: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:9161:1: ( ( ( rule__XTypeParameter__AnnotationsAssignment_0 )* ) )
            // InternalXcore.g:9162:1: ( ( rule__XTypeParameter__AnnotationsAssignment_0 )* )
            {
            // InternalXcore.g:9162:1: ( ( rule__XTypeParameter__AnnotationsAssignment_0 )* )
            // InternalXcore.g:9163:2: ( rule__XTypeParameter__AnnotationsAssignment_0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getAnnotationsAssignment_0()); 
            }
            // InternalXcore.g:9164:2: ( 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:9164:3: rule__XTypeParameter__AnnotationsAssignment_0
            	    {
            	    pushFollow(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:9172: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:9176:1: ( rule__XTypeParameter__Group__1__Impl rule__XTypeParameter__Group__2 )
            // InternalXcore.g:9177:2: rule__XTypeParameter__Group__1__Impl rule__XTypeParameter__Group__2
            {
            pushFollow(FOLLOW_57);
            rule__XTypeParameter__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:9184: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:9188:1: ( ( ( rule__XTypeParameter__NameAssignment_1 ) ) )
            // InternalXcore.g:9189:1: ( ( rule__XTypeParameter__NameAssignment_1 ) )
            {
            // InternalXcore.g:9189:1: ( ( rule__XTypeParameter__NameAssignment_1 ) )
            // InternalXcore.g:9190:2: ( rule__XTypeParameter__NameAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getNameAssignment_1()); 
            }
            // InternalXcore.g:9191:2: ( rule__XTypeParameter__NameAssignment_1 )
            // InternalXcore.g:9191:3: rule__XTypeParameter__NameAssignment_1
            {
            pushFollow(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:9199: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:9203:1: ( rule__XTypeParameter__Group__2__Impl )
            // InternalXcore.g:9204:2: rule__XTypeParameter__Group__2__Impl
            {
            pushFollow(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:9210: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:9214:1: ( ( ( rule__XTypeParameter__Group_2__0 )? ) )
            // InternalXcore.g:9215:1: ( ( rule__XTypeParameter__Group_2__0 )? )
            {
            // InternalXcore.g:9215:1: ( ( rule__XTypeParameter__Group_2__0 )? )
            // InternalXcore.g:9216:2: ( rule__XTypeParameter__Group_2__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getGroup_2()); 
            }
            // InternalXcore.g:9217:2: ( 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:9217:3: rule__XTypeParameter__Group_2__0
                    {
                    pushFollow(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:9226: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:9230:1: ( rule__XTypeParameter__Group_2__0__Impl rule__XTypeParameter__Group_2__1 )
            // InternalXcore.g:9231:2: rule__XTypeParameter__Group_2__0__Impl rule__XTypeParameter__Group_2__1
            {
            pushFollow(FOLLOW_11);
            rule__XTypeParameter__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:9238: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:9242:1: ( ( 'extends' ) )
            // InternalXcore.g:9243:1: ( 'extends' )
            {
            // InternalXcore.g:9243:1: ( 'extends' )
            // InternalXcore.g:9244:2: 'extends'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getExtendsKeyword_2_0()); 
            }
            match(input,34,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:9253: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:9257:1: ( rule__XTypeParameter__Group_2__1__Impl rule__XTypeParameter__Group_2__2 )
            // InternalXcore.g:9258:2: rule__XTypeParameter__Group_2__1__Impl rule__XTypeParameter__Group_2__2
            {
            pushFollow(FOLLOW_58);
            rule__XTypeParameter__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:9265: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:9269:1: ( ( ( rule__XTypeParameter__BoundsAssignment_2_1 ) ) )
            // InternalXcore.g:9270:1: ( ( rule__XTypeParameter__BoundsAssignment_2_1 ) )
            {
            // InternalXcore.g:9270:1: ( ( rule__XTypeParameter__BoundsAssignment_2_1 ) )
            // InternalXcore.g:9271:2: ( rule__XTypeParameter__BoundsAssignment_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getBoundsAssignment_2_1()); 
            }
            // InternalXcore.g:9272:2: ( rule__XTypeParameter__BoundsAssignment_2_1 )
            // InternalXcore.g:9272:3: rule__XTypeParameter__BoundsAssignment_2_1
            {
            pushFollow(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:9280: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:9284:1: ( rule__XTypeParameter__Group_2__2__Impl )
            // InternalXcore.g:9285:2: rule__XTypeParameter__Group_2__2__Impl
            {
            pushFollow(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:9291: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:9295:1: ( ( ( rule__XTypeParameter__Group_2_2__0 )* ) )
            // InternalXcore.g:9296:1: ( ( rule__XTypeParameter__Group_2_2__0 )* )
            {
            // InternalXcore.g:9296:1: ( ( rule__XTypeParameter__Group_2_2__0 )* )
            // InternalXcore.g:9297:2: ( rule__XTypeParameter__Group_2_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getGroup_2_2()); 
            }
            // InternalXcore.g:9298:2: ( 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:9298:3: rule__XTypeParameter__Group_2_2__0
            	    {
            	    pushFollow(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:9307: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:9311:1: ( rule__XTypeParameter__Group_2_2__0__Impl rule__XTypeParameter__Group_2_2__1 )
            // InternalXcore.g:9312:2: rule__XTypeParameter__Group_2_2__0__Impl rule__XTypeParameter__Group_2_2__1
            {
            pushFollow(FOLLOW_11);
            rule__XTypeParameter__Group_2_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:9319: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:9323:1: ( ( '&' ) )
            // InternalXcore.g:9324:1: ( '&' )
            {
            // InternalXcore.g:9324:1: ( '&' )
            // InternalXcore.g:9325:2: '&'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getAmpersandKeyword_2_2_0()); 
            }
            match(input,91,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:9334: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:9338:1: ( rule__XTypeParameter__Group_2_2__1__Impl )
            // InternalXcore.g:9339:2: rule__XTypeParameter__Group_2_2__1__Impl
            {
            pushFollow(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:9345: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:9349:1: ( ( ( rule__XTypeParameter__BoundsAssignment_2_2_1 ) ) )
            // InternalXcore.g:9350:1: ( ( rule__XTypeParameter__BoundsAssignment_2_2_1 ) )
            {
            // InternalXcore.g:9350:1: ( ( rule__XTypeParameter__BoundsAssignment_2_2_1 ) )
            // InternalXcore.g:9351:2: ( rule__XTypeParameter__BoundsAssignment_2_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getBoundsAssignment_2_2_1()); 
            }
            // InternalXcore.g:9352:2: ( rule__XTypeParameter__BoundsAssignment_2_2_1 )
            // InternalXcore.g:9352:3: rule__XTypeParameter__BoundsAssignment_2_2_1
            {
            pushFollow(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:9361: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:9365:1: ( rule__XMultiplicity__Group__0__Impl rule__XMultiplicity__Group__1 )
            // InternalXcore.g:9366:2: rule__XMultiplicity__Group__0__Impl rule__XMultiplicity__Group__1
            {
            pushFollow(FOLLOW_60);
            rule__XMultiplicity__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:9373:1: rule__XMultiplicity__Group__0__Impl : ( '[' ) ;
    public final void rule__XMultiplicity__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:9377:1: ( ( '[' ) )
            // InternalXcore.g:9378:1: ( '[' )
            {
            // InternalXcore.g:9378:1: ( '[' )
            // InternalXcore.g:9379:2: '['
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicityAccess().getLeftSquareBracketKeyword_0()); 
            }
            match(input,92,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:9388: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:9392:1: ( rule__XMultiplicity__Group__1__Impl rule__XMultiplicity__Group__2 )
            // InternalXcore.g:9393:2: rule__XMultiplicity__Group__1__Impl rule__XMultiplicity__Group__2
            {
            pushFollow(FOLLOW_60);
            rule__XMultiplicity__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:9400: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:9404:1: ( ( ( rule__XMultiplicity__Alternatives_1 )? ) )
            // InternalXcore.g:9405:1: ( ( rule__XMultiplicity__Alternatives_1 )? )
            {
            // InternalXcore.g:9405:1: ( ( rule__XMultiplicity__Alternatives_1 )? )
            // InternalXcore.g:9406:2: ( rule__XMultiplicity__Alternatives_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicityAccess().getAlternatives_1()); 
            }
            // InternalXcore.g:9407:2: ( 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:9407:3: rule__XMultiplicity__Alternatives_1
                    {
                    pushFollow(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:9415: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:9419:1: ( rule__XMultiplicity__Group__2__Impl )
            // InternalXcore.g:9420:2: rule__XMultiplicity__Group__2__Impl
            {
            pushFollow(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:9426:1: rule__XMultiplicity__Group__2__Impl : ( ']' ) ;
    public final void rule__XMultiplicity__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:9430:1: ( ( ']' ) )
            // InternalXcore.g:9431:1: ( ']' )
            {
            // InternalXcore.g:9431:1: ( ']' )
            // InternalXcore.g:9432:2: ']'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicityAccess().getRightSquareBracketKeyword_2()); 
            }
            match(input,93,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:9442: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:9446:1: ( rule__XMultiplicity__Group_1_3__0__Impl rule__XMultiplicity__Group_1_3__1 )
            // InternalXcore.g:9447:2: rule__XMultiplicity__Group_1_3__0__Impl rule__XMultiplicity__Group_1_3__1
            {
            pushFollow(FOLLOW_61);
            rule__XMultiplicity__Group_1_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:9454: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:9458:1: ( ( RULE_INT ) )
            // InternalXcore.g:9459:1: ( RULE_INT )
            {
            // InternalXcore.g:9459:1: ( RULE_INT )
            // InternalXcore.g:9460:2: RULE_INT
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicityAccess().getINTTerminalRuleCall_1_3_0()); 
            }
            match(input,RULE_INT,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:9469: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:9473:1: ( rule__XMultiplicity__Group_1_3__1__Impl )
            // InternalXcore.g:9474:2: rule__XMultiplicity__Group_1_3__1__Impl
            {
            pushFollow(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:9480: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:9484:1: ( ( ( rule__XMultiplicity__Group_1_3_1__0 )? ) )
            // InternalXcore.g:9485:1: ( ( rule__XMultiplicity__Group_1_3_1__0 )? )
            {
            // InternalXcore.g:9485:1: ( ( rule__XMultiplicity__Group_1_3_1__0 )? )
            // InternalXcore.g:9486:2: ( rule__XMultiplicity__Group_1_3_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicityAccess().getGroup_1_3_1()); 
            }
            // InternalXcore.g:9487:2: ( 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:9487:3: rule__XMultiplicity__Group_1_3_1__0
                    {
                    pushFollow(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:9496: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:9500:1: ( rule__XMultiplicity__Group_1_3_1__0__Impl rule__XMultiplicity__Group_1_3_1__1 )
            // InternalXcore.g:9501:2: rule__XMultiplicity__Group_1_3_1__0__Impl rule__XMultiplicity__Group_1_3_1__1
            {
            pushFollow(FOLLOW_62);
            rule__XMultiplicity__Group_1_3_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:9508: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:9512:1: ( ( '..' ) )
            // InternalXcore.g:9513:1: ( '..' )
            {
            // InternalXcore.g:9513:1: ( '..' )
            // InternalXcore.g:9514:2: '..'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicityAccess().getFullStopFullStopKeyword_1_3_1_0()); 
            }
            match(input,69,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:9523: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:9527:1: ( rule__XMultiplicity__Group_1_3_1__1__Impl )
            // InternalXcore.g:9528:2: rule__XMultiplicity__Group_1_3_1__1__Impl
            {
            pushFollow(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:9534: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:9538:1: ( ( ( rule__XMultiplicity__Alternatives_1_3_1_1 ) ) )
            // InternalXcore.g:9539:1: ( ( rule__XMultiplicity__Alternatives_1_3_1_1 ) )
            {
            // InternalXcore.g:9539:1: ( ( rule__XMultiplicity__Alternatives_1_3_1_1 ) )
            // InternalXcore.g:9540:2: ( rule__XMultiplicity__Alternatives_1_3_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicityAccess().getAlternatives_1_3_1_1()); 
            }
            // InternalXcore.g:9541:2: ( rule__XMultiplicity__Alternatives_1_3_1_1 )
            // InternalXcore.g:9541:3: rule__XMultiplicity__Alternatives_1_3_1_1
            {
            pushFollow(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:9550: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:9554:1: ( rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 )
            // InternalXcore.g:9555:2: rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1
            {
            pushFollow(FOLLOW_26);
            rule__XBlockExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:9562:1: rule__XBlockExpression__Group__0__Impl : ( () ) ;
    public final void rule__XBlockExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:9566:1: ( ( () ) )
            // InternalXcore.g:9567:1: ( () )
            {
            // InternalXcore.g:9567:1: ( () )
            // InternalXcore.g:9568:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0()); 
            }
            // InternalXcore.g:9569:2: ()
            // InternalXcore.g:9569:3: 
            {
            }

            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:9577: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:9581:1: ( rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 )
            // InternalXcore.g:9582:2: rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2
            {
            pushFollow(FOLLOW_63);
            rule__XBlockExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:9589:1: rule__XBlockExpression__Group__1__Impl : ( '{' ) ;
    public final void rule__XBlockExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:9593:1: ( ( '{' ) )
            // InternalXcore.g:9594:1: ( '{' )
            {
            // InternalXcore.g:9594:1: ( '{' )
            // InternalXcore.g:9595:2: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1()); 
            }
            match(input,89,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:9604: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:9608:1: ( rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 )
            // InternalXcore.g:9609:2: rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3
            {
            pushFollow(FOLLOW_63);
            rule__XBlockExpression__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:9616: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:9620:1: ( ( ( rule__XBlockExpression__Group_2__0 )* ) )
            // InternalXcore.g:9621:1: ( ( rule__XBlockExpression__Group_2__0 )* )
            {
            // InternalXcore.g:9621:1: ( ( rule__XBlockExpression__Group_2__0 )* )
            // InternalXcore.g:9622:2: ( rule__XBlockExpression__Group_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBlockExpressionAccess().getGroup_2()); 
            }
            // InternalXcore.g:9623:2: ( 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:9623:3: rule__XBlockExpression__Group_2__0
            	    {
            	    pushFollow(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:9631: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:9635:1: ( rule__XBlockExpression__Group__3__Impl )
            // InternalXcore.g:9636:2: rule__XBlockExpression__Group__3__Impl
            {
            pushFollow(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:9642:1: rule__XBlockExpression__Group__3__Impl : ( '}' ) ;
    public final void rule__XBlockExpression__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:9646:1: ( ( '}' ) )
            // InternalXcore.g:9647:1: ( '}' )
            {
            // InternalXcore.g:9647:1: ( '}' )
            // InternalXcore.g:9648:2: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3()); 
            }
            match(input,90,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:9658: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:9662:1: ( rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 )
            // InternalXcore.g:9663:2: rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1
            {
            pushFollow(FOLLOW_65);
            rule__XBlockExpression__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:9670: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:9674:1: ( ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) )
            // InternalXcore.g:9675:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
            {
            // InternalXcore.g:9675:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
            // InternalXcore.g:9676:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBlockExpressionAccess().getExpressionsAssignment_2_0()); 
            }
            // InternalXcore.g:9677:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
            // InternalXcore.g:9677:3: rule__XBlockExpression__ExpressionsAssignment_2_0
            {
            pushFollow(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:9685: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:9689:1: ( rule__XBlockExpression__Group_2__1__Impl )
            // InternalXcore.g:9690:2: rule__XBlockExpression__Group_2__1__Impl
            {
            pushFollow(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:9696:1: rule__XBlockExpression__Group_2__1__Impl : ( ( ';' )? ) ;
    public final void rule__XBlockExpression__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:9700:1: ( ( ( ';' )? ) )
            // InternalXcore.g:9701:1: ( ( ';' )? )
            {
            // InternalXcore.g:9701:1: ( ( ';' )? )
            // InternalXcore.g:9702:2: ( ';' )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1()); 
            }
            // InternalXcore.g:9703:2: ( ';' )?
            int alt114=2;
            int LA114_0 = input.LA(1);

            if ( (LA114_0==94) ) {
                alt114=1;
            }
            switch (alt114) {
                case 1 :
                    // InternalXcore.g:9703:3: ';'
                    {
                    match(input,94,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:9712: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:9716:1: ( rule__XGenericType__Group__0__Impl rule__XGenericType__Group__1 )
            // InternalXcore.g:9717:2: rule__XGenericType__Group__0__Impl rule__XGenericType__Group__1
            {
            pushFollow(FOLLOW_66);
            rule__XGenericType__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:9724: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:9728:1: ( ( ( rule__XGenericType__TypeAssignment_0 ) ) )
            // InternalXcore.g:9729:1: ( ( rule__XGenericType__TypeAssignment_0 ) )
            {
            // InternalXcore.g:9729:1: ( ( rule__XGenericType__TypeAssignment_0 ) )
            // InternalXcore.g:9730:2: ( rule__XGenericType__TypeAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getTypeAssignment_0()); 
            }
            // InternalXcore.g:9731:2: ( rule__XGenericType__TypeAssignment_0 )
            // InternalXcore.g:9731:3: rule__XGenericType__TypeAssignment_0
            {
            pushFollow(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:9739: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:9743:1: ( rule__XGenericType__Group__1__Impl )
            // InternalXcore.g:9744:2: rule__XGenericType__Group__1__Impl
            {
            pushFollow(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:9750: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:9754:1: ( ( ( rule__XGenericType__Group_1__0 )? ) )
            // InternalXcore.g:9755:1: ( ( rule__XGenericType__Group_1__0 )? )
            {
            // InternalXcore.g:9755:1: ( ( rule__XGenericType__Group_1__0 )? )
            // InternalXcore.g:9756:2: ( rule__XGenericType__Group_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getGroup_1()); 
            }
            // InternalXcore.g:9757:2: ( 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:9757:3: rule__XGenericType__Group_1__0
                    {
                    pushFollow(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:9766: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:9770:1: ( rule__XGenericType__Group_1__0__Impl rule__XGenericType__Group_1__1 )
            // InternalXcore.g:9771:2: rule__XGenericType__Group_1__0__Impl rule__XGenericType__Group_1__1
            {
            pushFollow(FOLLOW_67);
            rule__XGenericType__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:9778:1: rule__XGenericType__Group_1__0__Impl : ( ( '<' ) ) ;
    public final void rule__XGenericType__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:9782:1: ( ( ( '<' ) ) )
            // InternalXcore.g:9783:1: ( ( '<' ) )
            {
            // InternalXcore.g:9783:1: ( ( '<' ) )
            // InternalXcore.g:9784:2: ( '<' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getLessThanSignKeyword_1_0()); 
            }
            // InternalXcore.g:9785:2: ( '<' )
            // InternalXcore.g:9785:3: '<'
            {
            match(input,66,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:9793: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:9797:1: ( rule__XGenericType__Group_1__1__Impl rule__XGenericType__Group_1__2 )
            // InternalXcore.g:9798:2: rule__XGenericType__Group_1__1__Impl rule__XGenericType__Group_1__2
            {
            pushFollow(FOLLOW_25);
            rule__XGenericType__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:9805: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:9809:1: ( ( ( rule__XGenericType__TypeArgumentsAssignment_1_1 ) ) )
            // InternalXcore.g:9810:1: ( ( rule__XGenericType__TypeArgumentsAssignment_1_1 ) )
            {
            // InternalXcore.g:9810:1: ( ( rule__XGenericType__TypeArgumentsAssignment_1_1 ) )
            // InternalXcore.g:9811:2: ( rule__XGenericType__TypeArgumentsAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getTypeArgumentsAssignment_1_1()); 
            }
            // InternalXcore.g:9812:2: ( rule__XGenericType__TypeArgumentsAssignment_1_1 )
            // InternalXcore.g:9812:3: rule__XGenericType__TypeArgumentsAssignment_1_1
            {
            pushFollow(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:9820: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:9824:1: ( rule__XGenericType__Group_1__2__Impl rule__XGenericType__Group_1__3 )
            // InternalXcore.g:9825:2: rule__XGenericType__Group_1__2__Impl rule__XGenericType__Group_1__3
            {
            pushFollow(FOLLOW_25);
            rule__XGenericType__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:9832: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:9836:1: ( ( ( rule__XGenericType__Group_1_2__0 )* ) )
            // InternalXcore.g:9837:1: ( ( rule__XGenericType__Group_1_2__0 )* )
            {
            // InternalXcore.g:9837:1: ( ( rule__XGenericType__Group_1_2__0 )* )
            // InternalXcore.g:9838:2: ( rule__XGenericType__Group_1_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getGroup_1_2()); 
            }
            // InternalXcore.g:9839:2: ( 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:9839:3: rule__XGenericType__Group_1_2__0
            	    {
            	    pushFollow(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:9847: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:9851:1: ( rule__XGenericType__Group_1__3__Impl )
            // InternalXcore.g:9852:2: rule__XGenericType__Group_1__3__Impl
            {
            pushFollow(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:9858:1: rule__XGenericType__Group_1__3__Impl : ( '>' ) ;
    public final void rule__XGenericType__Group_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:9862:1: ( ( '>' ) )
            // InternalXcore.g:9863:1: ( '>' )
            {
            // InternalXcore.g:9863:1: ( '>' )
            // InternalXcore.g:9864:2: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getGreaterThanSignKeyword_1_3()); 
            }
            match(input,65,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:9874: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:9878:1: ( rule__XGenericType__Group_1_2__0__Impl rule__XGenericType__Group_1_2__1 )
            // InternalXcore.g:9879:2: rule__XGenericType__Group_1_2__0__Impl rule__XGenericType__Group_1_2__1
            {
            pushFollow(FOLLOW_67);
            rule__XGenericType__Group_1_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:9886: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:9890:1: ( ( ',' ) )
            // InternalXcore.g:9891:1: ( ',' )
            {
            // InternalXcore.g:9891:1: ( ',' )
            // InternalXcore.g:9892:2: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getCommaKeyword_1_2_0()); 
            }
            match(input,87,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:9901: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:9905:1: ( rule__XGenericType__Group_1_2__1__Impl )
            // InternalXcore.g:9906:2: rule__XGenericType__Group_1_2__1__Impl
            {
            pushFollow(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:9912: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:9916:1: ( ( ( rule__XGenericType__TypeArgumentsAssignment_1_2_1 ) ) )
            // InternalXcore.g:9917:1: ( ( rule__XGenericType__TypeArgumentsAssignment_1_2_1 ) )
            {
            // InternalXcore.g:9917:1: ( ( rule__XGenericType__TypeArgumentsAssignment_1_2_1 ) )
            // InternalXcore.g:9918:2: ( rule__XGenericType__TypeArgumentsAssignment_1_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getTypeArgumentsAssignment_1_2_1()); 
            }
            // InternalXcore.g:9919:2: ( rule__XGenericType__TypeArgumentsAssignment_1_2_1 )
            // InternalXcore.g:9919:3: rule__XGenericType__TypeArgumentsAssignment_1_2_1
            {
            pushFollow(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:9928: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:9932:1: ( rule__XGenericWildcardTypeArgument__Group__0__Impl rule__XGenericWildcardTypeArgument__Group__1 )
            // InternalXcore.g:9933:2: rule__XGenericWildcardTypeArgument__Group__0__Impl rule__XGenericWildcardTypeArgument__Group__1
            {
            pushFollow(FOLLOW_67);
            rule__XGenericWildcardTypeArgument__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:9940:1: rule__XGenericWildcardTypeArgument__Group__0__Impl : ( () ) ;
    public final void rule__XGenericWildcardTypeArgument__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:9944:1: ( ( () ) )
            // InternalXcore.g:9945:1: ( () )
            {
            // InternalXcore.g:9945:1: ( () )
            // InternalXcore.g:9946:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericWildcardTypeArgumentAccess().getXGenericTypeAction_0()); 
            }
            // InternalXcore.g:9947:2: ()
            // InternalXcore.g:9947:3: 
            {
            }

            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:9955: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:9959:1: ( rule__XGenericWildcardTypeArgument__Group__1__Impl rule__XGenericWildcardTypeArgument__Group__2 )
            // InternalXcore.g:9960:2: rule__XGenericWildcardTypeArgument__Group__1__Impl rule__XGenericWildcardTypeArgument__Group__2
            {
            pushFollow(FOLLOW_68);
            rule__XGenericWildcardTypeArgument__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:9967:1: rule__XGenericWildcardTypeArgument__Group__1__Impl : ( '?' ) ;
    public final void rule__XGenericWildcardTypeArgument__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:9971:1: ( ( '?' ) )
            // InternalXcore.g:9972:1: ( '?' )
            {
            // InternalXcore.g:9972:1: ( '?' )
            // InternalXcore.g:9973:2: '?'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericWildcardTypeArgumentAccess().getQuestionMarkKeyword_1()); 
            }
            match(input,17,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:9982: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:9986:1: ( rule__XGenericWildcardTypeArgument__Group__2__Impl )
            // InternalXcore.g:9987:2: rule__XGenericWildcardTypeArgument__Group__2__Impl
            {
            pushFollow(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:9993: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:9997:1: ( ( ( rule__XGenericWildcardTypeArgument__Alternatives_2 )? ) )
            // InternalXcore.g:9998:1: ( ( rule__XGenericWildcardTypeArgument__Alternatives_2 )? )
            {
            // InternalXcore.g:9998:1: ( ( rule__XGenericWildcardTypeArgument__Alternatives_2 )? )
            // InternalXcore.g:9999:2: ( rule__XGenericWildcardTypeArgument__Alternatives_2 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericWildcardTypeArgumentAccess().getAlternatives_2()); 
            }
            // InternalXcore.g:10000:2: ( 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:10000:3: rule__XGenericWildcardTypeArgument__Alternatives_2
                    {
                    pushFollow(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:10009: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:10013:1: ( rule__XGenericWildcardTypeArgument__Group_2_0__0__Impl rule__XGenericWildcardTypeArgument__Group_2_0__1 )
            // InternalXcore.g:10014:2: rule__XGenericWildcardTypeArgument__Group_2_0__0__Impl rule__XGenericWildcardTypeArgument__Group_2_0__1
            {
            pushFollow(FOLLOW_11);
            rule__XGenericWildcardTypeArgument__Group_2_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:10021: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:10025:1: ( ( 'extends' ) )
            // InternalXcore.g:10026:1: ( 'extends' )
            {
            // InternalXcore.g:10026:1: ( 'extends' )
            // InternalXcore.g:10027:2: 'extends'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericWildcardTypeArgumentAccess().getExtendsKeyword_2_0_0()); 
            }
            match(input,34,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:10036: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:10040:1: ( rule__XGenericWildcardTypeArgument__Group_2_0__1__Impl )
            // InternalXcore.g:10041:2: rule__XGenericWildcardTypeArgument__Group_2_0__1__Impl
            {
            pushFollow(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:10047: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:10051:1: ( ( ( rule__XGenericWildcardTypeArgument__UpperBoundAssignment_2_0_1 ) ) )
            // InternalXcore.g:10052:1: ( ( rule__XGenericWildcardTypeArgument__UpperBoundAssignment_2_0_1 ) )
            {
            // InternalXcore.g:10052:1: ( ( rule__XGenericWildcardTypeArgument__UpperBoundAssignment_2_0_1 ) )
            // InternalXcore.g:10053:2: ( rule__XGenericWildcardTypeArgument__UpperBoundAssignment_2_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericWildcardTypeArgumentAccess().getUpperBoundAssignment_2_0_1()); 
            }
            // InternalXcore.g:10054:2: ( rule__XGenericWildcardTypeArgument__UpperBoundAssignment_2_0_1 )
            // InternalXcore.g:10054:3: rule__XGenericWildcardTypeArgument__UpperBoundAssignment_2_0_1
            {
            pushFollow(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:10063: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:10067:1: ( rule__XGenericWildcardTypeArgument__Group_2_1__0__Impl rule__XGenericWildcardTypeArgument__Group_2_1__1 )
            // InternalXcore.g:10068:2: rule__XGenericWildcardTypeArgument__Group_2_1__0__Impl rule__XGenericWildcardTypeArgument__Group_2_1__1
            {
            pushFollow(FOLLOW_11);
            rule__XGenericWildcardTypeArgument__Group_2_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:10075: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:10079:1: ( ( 'super' ) )
            // InternalXcore.g:10080:1: ( 'super' )
            {
            // InternalXcore.g:10080:1: ( 'super' )
            // InternalXcore.g:10081:2: 'super'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericWildcardTypeArgumentAccess().getSuperKeyword_2_1_0()); 
            }
            match(input,82,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:10090: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:10094:1: ( rule__XGenericWildcardTypeArgument__Group_2_1__1__Impl )
            // InternalXcore.g:10095:2: rule__XGenericWildcardTypeArgument__Group_2_1__1__Impl
            {
            pushFollow(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:10101: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:10105:1: ( ( ( rule__XGenericWildcardTypeArgument__LowerBoundAssignment_2_1_1 ) ) )
            // InternalXcore.g:10106:1: ( ( rule__XGenericWildcardTypeArgument__LowerBoundAssignment_2_1_1 ) )
            {
            // InternalXcore.g:10106:1: ( ( rule__XGenericWildcardTypeArgument__LowerBoundAssignment_2_1_1 ) )
            // InternalXcore.g:10107:2: ( rule__XGenericWildcardTypeArgument__LowerBoundAssignment_2_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericWildcardTypeArgumentAccess().getLowerBoundAssignment_2_1_1()); 
            }
            // InternalXcore.g:10108:2: ( rule__XGenericWildcardTypeArgument__LowerBoundAssignment_2_1_1 )
            // InternalXcore.g:10108:3: rule__XGenericWildcardTypeArgument__LowerBoundAssignment_2_1_1
            {
            pushFollow(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:10117: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:10121:1: ( rule__XQualifiedName__Group__0__Impl rule__XQualifiedName__Group__1 )
            // InternalXcore.g:10122:2: rule__XQualifiedName__Group__0__Impl rule__XQualifiedName__Group__1
            {
            pushFollow(FOLLOW_69);
            rule__XQualifiedName__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:10129:1: rule__XQualifiedName__Group__0__Impl : ( ruleXID ) ;
    public final void rule__XQualifiedName__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:10133:1: ( ( ruleXID ) )
            // InternalXcore.g:10134:1: ( ruleXID )
            {
            // InternalXcore.g:10134:1: ( ruleXID )
            // InternalXcore.g:10135:2: ruleXID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXQualifiedNameAccess().getXIDParserRuleCall_0()); 
            }
            pushFollow(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:10144: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:10148:1: ( rule__XQualifiedName__Group__1__Impl )
            // InternalXcore.g:10149:2: rule__XQualifiedName__Group__1__Impl
            {
            pushFollow(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:10155: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:10159:1: ( ( ( rule__XQualifiedName__Group_1__0 )* ) )
            // InternalXcore.g:10160:1: ( ( rule__XQualifiedName__Group_1__0 )* )
            {
            // InternalXcore.g:10160:1: ( ( rule__XQualifiedName__Group_1__0 )* )
            // InternalXcore.g:10161:2: ( rule__XQualifiedName__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXQualifiedNameAccess().getGroup_1()); 
            }
            // InternalXcore.g:10162:2: ( 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:10162:3: rule__XQualifiedName__Group_1__0
            	    {
            	    pushFollow(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:10171: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:10175:1: ( rule__XQualifiedName__Group_1__0__Impl rule__XQualifiedName__Group_1__1 )
            // InternalXcore.g:10176:2: rule__XQualifiedName__Group_1__0__Impl rule__XQualifiedName__Group_1__1
            {
            pushFollow(FOLLOW_11);
            rule__XQualifiedName__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:10183:1: rule__XQualifiedName__Group_1__0__Impl : ( '.' ) ;
    public final void rule__XQualifiedName__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:10187:1: ( ( '.' ) )
            // InternalXcore.g:10188:1: ( '.' )
            {
            // InternalXcore.g:10188:1: ( '.' )
            // InternalXcore.g:10189:2: '.'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXQualifiedNameAccess().getFullStopKeyword_1_0()); 
            }
            match(input,80,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:10198: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:10202:1: ( rule__XQualifiedName__Group_1__1__Impl )
            // InternalXcore.g:10203:2: rule__XQualifiedName__Group_1__1__Impl
            {
            pushFollow(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:10209: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:10213:1: ( ( ruleXID ) )
            // InternalXcore.g:10214:1: ( ruleXID )
            {
            // InternalXcore.g:10214:1: ( ruleXID )
            // InternalXcore.g:10215:2: ruleXID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXQualifiedNameAccess().getXIDParserRuleCall_1_1()); 
            }
            pushFollow(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:10225: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:10229:1: ( rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 )
            // InternalXcore.g:10230:2: rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1
            {
            pushFollow(FOLLOW_71);
            rule__XAssignment__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:10237:1: rule__XAssignment__Group_0__0__Impl : ( () ) ;
    public final void rule__XAssignment__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:10241:1: ( ( () ) )
            // InternalXcore.g:10242:1: ( () )
            {
            // InternalXcore.g:10242:1: ( () )
            // InternalXcore.g:10243:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0()); 
            }
            // InternalXcore.g:10244:2: ()
            // InternalXcore.g:10244:3: 
            {
            }

            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:10252: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:10256:1: ( rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 )
            // InternalXcore.g:10257:2: rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2
            {
            pushFollow(FOLLOW_15);
            rule__XAssignment__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:10264: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:10268:1: ( ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) )
            // InternalXcore.g:10269:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
            {
            // InternalXcore.g:10269:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
            // InternalXcore.g:10270:2: ( rule__XAssignment__FeatureAssignment_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1()); 
            }
            // InternalXcore.g:10271:2: ( rule__XAssignment__FeatureAssignment_0_1 )
            // InternalXcore.g:10271:3: rule__XAssignment__FeatureAssignment_0_1
            {
            pushFollow(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:10279: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:10283:1: ( rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 )
            // InternalXcore.g:10284:2: rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3
            {
            pushFollow(FOLLOW_72);
            rule__XAssignment__Group_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:10291: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:10295:1: ( ( ruleOpSingleAssign ) )
            // InternalXcore.g:10296:1: ( ruleOpSingleAssign )
            {
            // InternalXcore.g:10296:1: ( ruleOpSingleAssign )
            // InternalXcore.g:10297:2: ruleOpSingleAssign
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); 
            }
            pushFollow(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:10306: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:10310:1: ( rule__XAssignment__Group_0__3__Impl )
            // InternalXcore.g:10311:2: rule__XAssignment__Group_0__3__Impl
            {
            pushFollow(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:10317: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:10321:1: ( ( ( rule__XAssignment__ValueAssignment_0_3 ) ) )
            // InternalXcore.g:10322:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
            {
            // InternalXcore.g:10322:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
            // InternalXcore.g:10323:2: ( rule__XAssignment__ValueAssignment_0_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3()); 
            }
            // InternalXcore.g:10324:2: ( rule__XAssignment__ValueAssignment_0_3 )
            // InternalXcore.g:10324:3: rule__XAssignment__ValueAssignment_0_3
            {
            pushFollow(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:10333: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:10337:1: ( rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 )
            // InternalXcore.g:10338:2: rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1
            {
            pushFollow(FOLLOW_73);
            rule__XAssignment__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:10345: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:10349:1: ( ( ruleXOrExpression ) )
            // InternalXcore.g:10350:1: ( ruleXOrExpression )
            {
            // InternalXcore.g:10350:1: ( ruleXOrExpression )
            // InternalXcore.g:10351:2: ruleXOrExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); 
            }
            pushFollow(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:10360: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:10364:1: ( rule__XAssignment__Group_1__1__Impl )
            // InternalXcore.g:10365:2: rule__XAssignment__Group_1__1__Impl
            {
            pushFollow(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:10371: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:10375:1: ( ( ( rule__XAssignment__Group_1_1__0 )? ) )
            // InternalXcore.g:10376:1: ( ( rule__XAssignment__Group_1_1__0 )? )
            {
            // InternalXcore.g:10376:1: ( ( rule__XAssignment__Group_1_1__0 )? )
            // InternalXcore.g:10377:2: ( rule__XAssignment__Group_1_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getGroup_1_1()); 
            }
            // InternalXcore.g:10378:2: ( rule__XAssignment__Group_1_1__0 )?
            int alt119=2;
            alt119 = dfa119.predict(input);
            switch (alt119) {
                case 1 :
                    // InternalXcore.g:10378:3: rule__XAssignment__Group_1_1__0
                    {
                    pushFollow(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:10387: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:10391:1: ( rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 )
            // InternalXcore.g:10392:2: rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1
            {
            pushFollow(FOLLOW_72);
            rule__XAssignment__Group_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:10399: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:10403:1: ( ( ( rule__XAssignment__Group_1_1_0__0 ) ) )
            // InternalXcore.g:10404:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
            {
            // InternalXcore.g:10404:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
            // InternalXcore.g:10405:2: ( rule__XAssignment__Group_1_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0()); 
            }
            // InternalXcore.g:10406:2: ( rule__XAssignment__Group_1_1_0__0 )
            // InternalXcore.g:10406:3: rule__XAssignment__Group_1_1_0__0
            {
            pushFollow(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:10414: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:10418:1: ( rule__XAssignment__Group_1_1__1__Impl )
            // InternalXcore.g:10419:2: rule__XAssignment__Group_1_1__1__Impl
            {
            pushFollow(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:10425: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:10429:1: ( ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) )
            // InternalXcore.g:10430:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
            {
            // InternalXcore.g:10430:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
            // InternalXcore.g:10431:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1()); 
            }
            // InternalXcore.g:10432:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
            // InternalXcore.g:10432:3: rule__XAssignment__RightOperandAssignment_1_1_1
            {
            pushFollow(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:10441: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:10445:1: ( rule__XAssignment__Group_1_1_0__0__Impl )
            // InternalXcore.g:10446:2: rule__XAssignment__Group_1_1_0__0__Impl
            {
            pushFollow(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:10452: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:10456:1: ( ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) )
            // InternalXcore.g:10457:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
            {
            // InternalXcore.g:10457:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
            // InternalXcore.g:10458:2: ( rule__XAssignment__Group_1_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0()); 
            }
            // InternalXcore.g:10459:2: ( rule__XAssignment__Group_1_1_0_0__0 )
            // InternalXcore.g:10459:3: rule__XAssignment__Group_1_1_0_0__0
            {
            pushFollow(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:10468: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:10472:1: ( rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 )
            // InternalXcore.g:10473:2: rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1
            {
            pushFollow(FOLLOW_73);
            rule__XAssignment__Group_1_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:10480: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:10484:1: ( ( () ) )
            // InternalXcore.g:10485:1: ( () )
            {
            // InternalXcore.g:10485:1: ( () )
            // InternalXcore.g:10486:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); 
            }
            // InternalXcore.g:10487:2: ()
            // InternalXcore.g:10487:3: 
            {
            }

            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:10495: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:10499:1: ( rule__XAssignment__Group_1_1_0_0__1__Impl )
            // InternalXcore.g:10500:2: rule__XAssignment__Group_1_1_0_0__1__Impl
            {
            pushFollow(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:10506: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:10510:1: ( ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) )
            // InternalXcore.g:10511:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
            {
            // InternalXcore.g:10511:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
            // InternalXcore.g:10512:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1()); 
            }
            // InternalXcore.g:10513:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
            // InternalXcore.g:10513:3: rule__XAssignment__FeatureAssignment_1_1_0_0_1
            {
            pushFollow(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:10522: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:10526:1: ( rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 )
            // InternalXcore.g:10527:2: rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1
            {
            pushFollow(FOLLOW_66);
            rule__OpMultiAssign__Group_5__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:10534:1: rule__OpMultiAssign__Group_5__0__Impl : ( '<' ) ;
    public final void rule__OpMultiAssign__Group_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:10538:1: ( ( '<' ) )
            // InternalXcore.g:10539:1: ( '<' )
            {
            // InternalXcore.g:10539:1: ( '<' )
            // InternalXcore.g:10540:2: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); 
            }
            match(input,66,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:10549: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:10553:1: ( rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 )
            // InternalXcore.g:10554:2: rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2
            {
            pushFollow(FOLLOW_15);
            rule__OpMultiAssign__Group_5__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:10561:1: rule__OpMultiAssign__Group_5__1__Impl : ( '<' ) ;
    public final void rule__OpMultiAssign__Group_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:10565:1: ( ( '<' ) )
            // InternalXcore.g:10566:1: ( '<' )
            {
            // InternalXcore.g:10566:1: ( '<' )
            // InternalXcore.g:10567:2: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); 
            }
            match(input,66,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:10576: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:10580:1: ( rule__OpMultiAssign__Group_5__2__Impl )
            // InternalXcore.g:10581:2: rule__OpMultiAssign__Group_5__2__Impl
            {
            pushFollow(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:10587:1: rule__OpMultiAssign__Group_5__2__Impl : ( '=' ) ;
    public final void rule__OpMultiAssign__Group_5__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:10591:1: ( ( '=' ) )
            // InternalXcore.g:10592:1: ( '=' )
            {
            // InternalXcore.g:10592:1: ( '=' )
            // InternalXcore.g:10593:2: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2()); 
            }
            match(input,13,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:10603: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:10607:1: ( rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 )
            // InternalXcore.g:10608:2: rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1
            {
            pushFollow(FOLLOW_74);
            rule__OpMultiAssign__Group_6__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:10615:1: rule__OpMultiAssign__Group_6__0__Impl : ( '>' ) ;
    public final void rule__OpMultiAssign__Group_6__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:10619:1: ( ( '>' ) )
            // InternalXcore.g:10620:1: ( '>' )
            {
            // InternalXcore.g:10620:1: ( '>' )
            // InternalXcore.g:10621:2: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); 
            }
            match(input,65,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:10630: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:10634:1: ( rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 )
            // InternalXcore.g:10635:2: rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2
            {
            pushFollow(FOLLOW_74);
            rule__OpMultiAssign__Group_6__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:10642:1: rule__OpMultiAssign__Group_6__1__Impl : ( ( '>' )? ) ;
    public final void rule__OpMultiAssign__Group_6__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:10646:1: ( ( ( '>' )? ) )
            // InternalXcore.g:10647:1: ( ( '>' )? )
            {
            // InternalXcore.g:10647:1: ( ( '>' )? )
            // InternalXcore.g:10648:2: ( '>' )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1()); 
            }
            // InternalXcore.g:10649:2: ( '>' )?
            int alt120=2;
            int LA120_0 = input.LA(1);

            if ( (LA120_0==65) ) {
                alt120=1;
            }
            switch (alt120) {
                case 1 :
                    // InternalXcore.g:10649:3: '>'
                    {
                    match(input,65,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:10657: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:10661:1: ( rule__OpMultiAssign__Group_6__2__Impl )
            // InternalXcore.g:10662:2: rule__OpMultiAssign__Group_6__2__Impl
            {
            pushFollow(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:10668:1: rule__OpMultiAssign__Group_6__2__Impl : ( '>=' ) ;
    public final void rule__OpMultiAssign__Group_6__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:10672:1: ( ( '>=' ) )
            // InternalXcore.g:10673:1: ( '>=' )
            {
            // InternalXcore.g:10673:1: ( '>=' )
            // InternalXcore.g:10674:2: '>='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); 
            }
            match(input,64,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:10684: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:10688:1: ( rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 )
            // InternalXcore.g:10689:2: rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1
            {
            pushFollow(FOLLOW_75);
            rule__XOrExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:10696:1: rule__XOrExpression__Group__0__Impl : ( ruleXAndExpression ) ;
    public final void rule__XOrExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:10700:1: ( ( ruleXAndExpression ) )
            // InternalXcore.g:10701:1: ( ruleXAndExpression )
            {
            // InternalXcore.g:10701:1: ( ruleXAndExpression )
            // InternalXcore.g:10702:2: ruleXAndExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); 
            }
            pushFollow(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:10711: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:10715:1: ( rule__XOrExpression__Group__1__Impl )
            // InternalXcore.g:10716:2: rule__XOrExpression__Group__1__Impl
            {
            pushFollow(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:10722: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:10726:1: ( ( ( rule__XOrExpression__Group_1__0 )* ) )
            // InternalXcore.g:10727:1: ( ( rule__XOrExpression__Group_1__0 )* )
            {
            // InternalXcore.g:10727:1: ( ( rule__XOrExpression__Group_1__0 )* )
            // InternalXcore.g:10728:2: ( rule__XOrExpression__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOrExpressionAccess().getGroup_1()); 
            }
            // InternalXcore.g:10729:2: ( 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:10729:3: rule__XOrExpression__Group_1__0
            	    {
            	    pushFollow(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:10738: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:10742:1: ( rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 )
            // InternalXcore.g:10743:2: rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1
            {
            pushFollow(FOLLOW_72);
            rule__XOrExpression__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:10750: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:10754:1: ( ( ( rule__XOrExpression__Group_1_0__0 ) ) )
            // InternalXcore.g:10755:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
            {
            // InternalXcore.g:10755:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
            // InternalXcore.g:10756:2: ( rule__XOrExpression__Group_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOrExpressionAccess().getGroup_1_0()); 
            }
            // InternalXcore.g:10757:2: ( rule__XOrExpression__Group_1_0__0 )
            // InternalXcore.g:10757:3: rule__XOrExpression__Group_1_0__0
            {
            pushFollow(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:10765: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:10769:1: ( rule__XOrExpression__Group_1__1__Impl )
            // InternalXcore.g:10770:2: rule__XOrExpression__Group_1__1__Impl
            {
            pushFollow(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:10776: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:10780:1: ( ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) )
            // InternalXcore.g:10781:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
            {
            // InternalXcore.g:10781:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
            // InternalXcore.g:10782:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1()); 
            }
            // InternalXcore.g:10783:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
            // InternalXcore.g:10783:3: rule__XOrExpression__RightOperandAssignment_1_1
            {
            pushFollow(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:10792: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:10796:1: ( rule__XOrExpression__Group_1_0__0__Impl )
            // InternalXcore.g:10797:2: rule__XOrExpression__Group_1_0__0__Impl
            {
            pushFollow(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:10803: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:10807:1: ( ( ( rule__XOrExpression__Group_1_0_0__0 ) ) )
            // InternalXcore.g:10808:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
            {
            // InternalXcore.g:10808:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
            // InternalXcore.g:10809:2: ( rule__XOrExpression__Group_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0()); 
            }
            // InternalXcore.g:10810:2: ( rule__XOrExpression__Group_1_0_0__0 )
            // InternalXcore.g:10810:3: rule__XOrExpression__Group_1_0_0__0
            {
            pushFollow(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:10819: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:10823:1: ( rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 )
            // InternalXcore.g:10824:2: rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1
            {
            pushFollow(FOLLOW_75);
            rule__XOrExpression__Group_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:10831: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:10835:1: ( ( () ) )
            // InternalXcore.g:10836:1: ( () )
            {
            // InternalXcore.g:10836:1: ( () )
            // InternalXcore.g:10837:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
            }
            // InternalXcore.g:10838:2: ()
            // InternalXcore.g:10838:3: 
            {
            }

            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:10846: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:10850:1: ( rule__XOrExpression__Group_1_0_0__1__Impl )
            // InternalXcore.g:10851:2: rule__XOrExpression__Group_1_0_0__1__Impl
            {
            pushFollow(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:10857: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:10861:1: ( ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) )
            // InternalXcore.g:10862:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
            {
            // InternalXcore.g:10862:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
            // InternalXcore.g:10863:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1()); 
            }
            // InternalXcore.g:10864:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
            // InternalXcore.g:10864:3: rule__XOrExpression__FeatureAssignment_1_0_0_1
            {
            pushFollow(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:10873: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:10877:1: ( rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 )
            // InternalXcore.g:10878:2: rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1
            {
            pushFollow(FOLLOW_77);
            rule__XAndExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:10885:1: rule__XAndExpression__Group__0__Impl : ( ruleXEqualityExpression ) ;
    public final void rule__XAndExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:10889:1: ( ( ruleXEqualityExpression ) )
            // InternalXcore.g:10890:1: ( ruleXEqualityExpression )
            {
            // InternalXcore.g:10890:1: ( ruleXEqualityExpression )
            // InternalXcore.g:10891:2: ruleXEqualityExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); 
            }
            pushFollow(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:10900: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:10904:1: ( rule__XAndExpression__Group__1__Impl )
            // InternalXcore.g:10905:2: rule__XAndExpression__Group__1__Impl
            {
            pushFollow(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:10911: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:10915:1: ( ( ( rule__XAndExpression__Group_1__0 )* ) )
            // InternalXcore.g:10916:1: ( ( rule__XAndExpression__Group_1__0 )* )
            {
            // InternalXcore.g:10916:1: ( ( rule__XAndExpression__Group_1__0 )* )
            // InternalXcore.g:10917:2: ( rule__XAndExpression__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAndExpressionAccess().getGroup_1()); 
            }
            // InternalXcore.g:10918:2: ( 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:10918:3: rule__XAndExpression__Group_1__0
            	    {
            	    pushFollow(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:10927: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:10931:1: ( rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 )
            // InternalXcore.g:10932:2: rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1
            {
            pushFollow(FOLLOW_72);
            rule__XAndExpression__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:10939: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:10943:1: ( ( ( rule__XAndExpression__Group_1_0__0 ) ) )
            // InternalXcore.g:10944:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
            {
            // InternalXcore.g:10944:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
            // InternalXcore.g:10945:2: ( rule__XAndExpression__Group_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAndExpressionAccess().getGroup_1_0()); 
            }
            // InternalXcore.g:10946:2: ( rule__XAndExpression__Group_1_0__0 )
            // InternalXcore.g:10946:3: rule__XAndExpression__Group_1_0__0
            {
            pushFollow(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:10954: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:10958:1: ( rule__XAndExpression__Group_1__1__Impl )
            // InternalXcore.g:10959:2: rule__XAndExpression__Group_1__1__Impl
            {
            pushFollow(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:10965: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:10969:1: ( ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) )
            // InternalXcore.g:10970:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
            {
            // InternalXcore.g:10970:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
            // InternalXcore.g:10971:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1()); 
            }
            // InternalXcore.g:10972:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
            // InternalXcore.g:10972:3: rule__XAndExpression__RightOperandAssignment_1_1
            {
            pushFollow(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:10981: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:10985:1: ( rule__XAndExpression__Group_1_0__0__Impl )
            // InternalXcore.g:10986:2: rule__XAndExpression__Group_1_0__0__Impl
            {
            pushFollow(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:10992: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:10996:1: ( ( ( rule__XAndExpression__Group_1_0_0__0 ) ) )
            // InternalXcore.g:10997:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
            {
            // InternalXcore.g:10997:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
            // InternalXcore.g:10998:2: ( rule__XAndExpression__Group_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0()); 
            }
            // InternalXcore.g:10999:2: ( rule__XAndExpression__Group_1_0_0__0 )
            // InternalXcore.g:10999:3: rule__XAndExpression__Group_1_0_0__0
            {
            pushFollow(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:11008: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:11012:1: ( rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 )
            // InternalXcore.g:11013:2: rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1
            {
            pushFollow(FOLLOW_77);
            rule__XAndExpression__Group_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:11020: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:11024:1: ( ( () ) )
            // InternalXcore.g:11025:1: ( () )
            {
            // InternalXcore.g:11025:1: ( () )
            // InternalXcore.g:11026:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
            }
            // InternalXcore.g:11027:2: ()
            // InternalXcore.g:11027:3: 
            {
            }

            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:11035: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:11039:1: ( rule__XAndExpression__Group_1_0_0__1__Impl )
            // InternalXcore.g:11040:2: rule__XAndExpression__Group_1_0_0__1__Impl
            {
            pushFollow(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:11046: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:11050:1: ( ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) )
            // InternalXcore.g:11051:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
            {
            // InternalXcore.g:11051:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
            // InternalXcore.g:11052:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1()); 
            }
            // InternalXcore.g:11053:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
            // InternalXcore.g:11053:3: rule__XAndExpression__FeatureAssignment_1_0_0_1
            {
            pushFollow(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:11062: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:11066:1: ( rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 )
            // InternalXcore.g:11067:2: rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1
            {
            pushFollow(FOLLOW_79);
            rule__XEqualityExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:11074:1: rule__XEqualityExpression__Group__0__Impl : ( ruleXRelationalExpression ) ;
    public final void rule__XEqualityExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:11078:1: ( ( ruleXRelationalExpression ) )
            // InternalXcore.g:11079:1: ( ruleXRelationalExpression )
            {
            // InternalXcore.g:11079:1: ( ruleXRelationalExpression )
            // InternalXcore.g:11080:2: ruleXRelationalExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0()); 
            }
            pushFollow(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:11089: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:11093:1: ( rule__XEqualityExpression__Group__1__Impl )
            // InternalXcore.g:11094:2: rule__XEqualityExpression__Group__1__Impl
            {
            pushFollow(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:11100: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:11104:1: ( ( ( rule__XEqualityExpression__Group_1__0 )* ) )
            // InternalXcore.g:11105:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
            {
            // InternalXcore.g:11105:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
            // InternalXcore.g:11106:2: ( rule__XEqualityExpression__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionAccess().getGroup_1()); 
            }
            // InternalXcore.g:11107:2: ( 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:11107:3: rule__XEqualityExpression__Group_1__0
            	    {
            	    pushFollow(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:11116: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:11120:1: ( rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 )
            // InternalXcore.g:11121:2: rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1
            {
            pushFollow(FOLLOW_72);
            rule__XEqualityExpression__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:11128: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:11132:1: ( ( ( rule__XEqualityExpression__Group_1_0__0 ) ) )
            // InternalXcore.g:11133:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
            {
            // InternalXcore.g:11133:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
            // InternalXcore.g:11134:2: ( rule__XEqualityExpression__Group_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0()); 
            }
            // InternalXcore.g:11135:2: ( rule__XEqualityExpression__Group_1_0__0 )
            // InternalXcore.g:11135:3: rule__XEqualityExpression__Group_1_0__0
            {
            pushFollow(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:11143: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:11147:1: ( rule__XEqualityExpression__Group_1__1__Impl )
            // InternalXcore.g:11148:2: rule__XEqualityExpression__Group_1__1__Impl
            {
            pushFollow(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:11154: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:11158:1: ( ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) )
            // InternalXcore.g:11159:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
            {
            // InternalXcore.g:11159:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
            // InternalXcore.g:11160:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1()); 
            }
            // InternalXcore.g:11161:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
            // InternalXcore.g:11161:3: rule__XEqualityExpression__RightOperandAssignment_1_1
            {
            pushFollow(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:11170: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:11174:1: ( rule__XEqualityExpression__Group_1_0__0__Impl )
            // InternalXcore.g:11175:2: rule__XEqualityExpression__Group_1_0__0__Impl
            {
            pushFollow(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:11181: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:11185:1: ( ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) )
            // InternalXcore.g:11186:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
            {
            // InternalXcore.g:11186:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
            // InternalXcore.g:11187:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0()); 
            }
            // InternalXcore.g:11188:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
            // InternalXcore.g:11188:3: rule__XEqualityExpression__Group_1_0_0__0
            {
            pushFollow(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:11197: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:11201:1: ( rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 )
            // InternalXcore.g:11202:2: rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1
            {
            pushFollow(FOLLOW_79);
            rule__XEqualityExpression__Group_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:11209: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:11213:1: ( ( () ) )
            // InternalXcore.g:11214:1: ( () )
            {
            // InternalXcore.g:11214:1: ( () )
            // InternalXcore.g:11215:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
            }
            // InternalXcore.g:11216:2: ()
            // InternalXcore.g:11216:3: 
            {
            }

            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:11224: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:11228:1: ( rule__XEqualityExpression__Group_1_0_0__1__Impl )
            // InternalXcore.g:11229:2: rule__XEqualityExpression__Group_1_0_0__1__Impl
            {
            pushFollow(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:11235: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:11239:1: ( ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) )
            // InternalXcore.g:11240:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
            {
            // InternalXcore.g:11240:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
            // InternalXcore.g:11241:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1()); 
            }
            // InternalXcore.g:11242:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
            // InternalXcore.g:11242:3: rule__XEqualityExpression__FeatureAssignment_1_0_0_1
            {
            pushFollow(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:11251: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:11255:1: ( rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 )
            // InternalXcore.g:11256:2: rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1
            {
            pushFollow(FOLLOW_81);
            rule__XRelationalExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:11263:1: rule__XRelationalExpression__Group__0__Impl : ( ruleXOtherOperatorExpression ) ;
    public final void rule__XRelationalExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:11267:1: ( ( ruleXOtherOperatorExpression ) )
            // InternalXcore.g:11268:1: ( ruleXOtherOperatorExpression )
            {
            // InternalXcore.g:11268:1: ( ruleXOtherOperatorExpression )
            // InternalXcore.g:11269:2: ruleXOtherOperatorExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0()); 
            }
            pushFollow(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:11278: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:11282:1: ( rule__XRelationalExpression__Group__1__Impl )
            // InternalXcore.g:11283:2: rule__XRelationalExpression__Group__1__Impl
            {
            pushFollow(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:11289: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:11293:1: ( ( ( rule__XRelationalExpression__Alternatives_1 )* ) )
            // InternalXcore.g:11294:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
            {
            // InternalXcore.g:11294:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
            // InternalXcore.g:11295:2: ( rule__XRelationalExpression__Alternatives_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1()); 
            }
            // InternalXcore.g:11296:2: ( 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:11296:3: rule__XRelationalExpression__Alternatives_1
            	    {
            	    pushFollow(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:11305: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:11309:1: ( rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 )
            // InternalXcore.g:11310:2: rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1
            {
            pushFollow(FOLLOW_22);
            rule__XRelationalExpression__Group_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:11317: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:11321:1: ( ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) )
            // InternalXcore.g:11322:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
            {
            // InternalXcore.g:11322:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
            // InternalXcore.g:11323:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0()); 
            }
            // InternalXcore.g:11324:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
            // InternalXcore.g:11324:3: rule__XRelationalExpression__Group_1_0_0__0
            {
            pushFollow(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:11332: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:11336:1: ( rule__XRelationalExpression__Group_1_0__1__Impl )
            // InternalXcore.g:11337:2: rule__XRelationalExpression__Group_1_0__1__Impl
            {
            pushFollow(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:11343: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:11347:1: ( ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) )
            // InternalXcore.g:11348:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
            {
            // InternalXcore.g:11348:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
            // InternalXcore.g:11349:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1()); 
            }
            // InternalXcore.g:11350:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
            // InternalXcore.g:11350:3: rule__XRelationalExpression__TypeAssignment_1_0_1
            {
            pushFollow(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:11359: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:11363:1: ( rule__XRelationalExpression__Group_1_0_0__0__Impl )
            // InternalXcore.g:11364:2: rule__XRelationalExpression__Group_1_0_0__0__Impl
            {
            pushFollow(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:11370: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:11374:1: ( ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) )
            // InternalXcore.g:11375:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
            {
            // InternalXcore.g:11375:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
            // InternalXcore.g:11376:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0()); 
            }
            // InternalXcore.g:11377:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
            // InternalXcore.g:11377:3: rule__XRelationalExpression__Group_1_0_0_0__0
            {
            pushFollow(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:11386: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:11390:1: ( rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 )
            // InternalXcore.g:11391:2: rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1
            {
            pushFollow(FOLLOW_83);
            rule__XRelationalExpression__Group_1_0_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:11398: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:11402:1: ( ( () ) )
            // InternalXcore.g:11403:1: ( () )
            {
            // InternalXcore.g:11403:1: ( () )
            // InternalXcore.g:11404:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0()); 
            }
            // InternalXcore.g:11405:2: ()
            // InternalXcore.g:11405:3: 
            {
            }

            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:11413: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:11417:1: ( rule__XRelationalExpression__Group_1_0_0_0__1__Impl )
            // InternalXcore.g:11418:2: rule__XRelationalExpression__Group_1_0_0_0__1__Impl
            {
            pushFollow(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:11424: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:11428:1: ( ( 'instanceof' ) )
            // InternalXcore.g:11429:1: ( 'instanceof' )
            {
            // InternalXcore.g:11429:1: ( 'instanceof' )
            // InternalXcore.g:11430:2: 'instanceof'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1()); 
            }
            match(input,95,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:11440: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:11444:1: ( rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 )
            // InternalXcore.g:11445:2: rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1
            {
            pushFollow(FOLLOW_72);
            rule__XRelationalExpression__Group_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:11452: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:11456:1: ( ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) )
            // InternalXcore.g:11457:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
            {
            // InternalXcore.g:11457:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
            // InternalXcore.g:11458:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0()); 
            }
            // InternalXcore.g:11459:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
            // InternalXcore.g:11459:3: rule__XRelationalExpression__Group_1_1_0__0
            {
            pushFollow(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:11467: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:11471:1: ( rule__XRelationalExpression__Group_1_1__1__Impl )
            // InternalXcore.g:11472:2: rule__XRelationalExpression__Group_1_1__1__Impl
            {
            pushFollow(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:11478: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:11482:1: ( ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) )
            // InternalXcore.g:11483:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
            {
            // InternalXcore.g:11483:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
            // InternalXcore.g:11484:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1()); 
            }
            // InternalXcore.g:11485:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
            // InternalXcore.g:11485:3: rule__XRelationalExpression__RightOperandAssignment_1_1_1
            {
            pushFollow(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:11494: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:11498:1: ( rule__XRelationalExpression__Group_1_1_0__0__Impl )
            // InternalXcore.g:11499:2: rule__XRelationalExpression__Group_1_1_0__0__Impl
            {
            pushFollow(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:11505: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:11509:1: ( ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) )
            // InternalXcore.g:11510:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
            {
            // InternalXcore.g:11510:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
            // InternalXcore.g:11511:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0()); 
            }
            // InternalXcore.g:11512:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
            // InternalXcore.g:11512:3: rule__XRelationalExpression__Group_1_1_0_0__0
            {
            pushFollow(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:11521: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:11525:1: ( rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 )
            // InternalXcore.g:11526:2: rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1
            {
            pushFollow(FOLLOW_81);
            rule__XRelationalExpression__Group_1_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:11533: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:11537:1: ( ( () ) )
            // InternalXcore.g:11538:1: ( () )
            {
            // InternalXcore.g:11538:1: ( () )
            // InternalXcore.g:11539:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); 
            }
            // InternalXcore.g:11540:2: ()
            // InternalXcore.g:11540:3: 
            {
            }

            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:11548: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:11552:1: ( rule__XRelationalExpression__Group_1_1_0_0__1__Impl )
            // InternalXcore.g:11553:2: rule__XRelationalExpression__Group_1_1_0_0__1__Impl
            {
            pushFollow(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:11559: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:11563:1: ( ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) )
            // InternalXcore.g:11564:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
            {
            // InternalXcore.g:11564:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
            // InternalXcore.g:11565:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1()); 
            }
            // InternalXcore.g:11566:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
            // InternalXcore.g:11566:3: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1
            {
            pushFollow(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:11575: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:11579:1: ( rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 )
            // InternalXcore.g:11580:2: rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1
            {
            pushFollow(FOLLOW_15);
            rule__OpCompare__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:11587:1: rule__OpCompare__Group_1__0__Impl : ( '<' ) ;
    public final void rule__OpCompare__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:11591:1: ( ( '<' ) )
            // InternalXcore.g:11592:1: ( '<' )
            {
            // InternalXcore.g:11592:1: ( '<' )
            // InternalXcore.g:11593:2: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0()); 
            }
            match(input,66,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:11602: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:11606:1: ( rule__OpCompare__Group_1__1__Impl )
            // InternalXcore.g:11607:2: rule__OpCompare__Group_1__1__Impl
            {
            pushFollow(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:11613:1: rule__OpCompare__Group_1__1__Impl : ( '=' ) ;
    public final void rule__OpCompare__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:11617:1: ( ( '=' ) )
            // InternalXcore.g:11618:1: ( '=' )
            {
            // InternalXcore.g:11618:1: ( '=' )
            // InternalXcore.g:11619:2: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1()); 
            }
            match(input,13,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:11629: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:11633:1: ( rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 )
            // InternalXcore.g:11634:2: rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1
            {
            pushFollow(FOLLOW_84);
            rule__XOtherOperatorExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:11641:1: rule__XOtherOperatorExpression__Group__0__Impl : ( ruleXAdditiveExpression ) ;
    public final void rule__XOtherOperatorExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:11645:1: ( ( ruleXAdditiveExpression ) )
            // InternalXcore.g:11646:1: ( ruleXAdditiveExpression )
            {
            // InternalXcore.g:11646:1: ( ruleXAdditiveExpression )
            // InternalXcore.g:11647:2: ruleXAdditiveExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0()); 
            }
            pushFollow(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:11656: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:11660:1: ( rule__XOtherOperatorExpression__Group__1__Impl )
            // InternalXcore.g:11661:2: rule__XOtherOperatorExpression__Group__1__Impl
            {
            pushFollow(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:11667: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:11671:1: ( ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) )
            // InternalXcore.g:11672:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
            {
            // InternalXcore.g:11672:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
            // InternalXcore.g:11673:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1()); 
            }
            // InternalXcore.g:11674:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
            loop125:
            do {
                int alt125=2;
                alt125 = dfa125.predict(input);
                switch (alt125) {
            	case 1 :
            	    // InternalXcore.g:11674:3: rule__XOtherOperatorExpression__Group_1__0
            	    {
            	    pushFollow(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:11683: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:11687:1: ( rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 )
            // InternalXcore.g:11688:2: rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1
            {
            pushFollow(FOLLOW_72);
            rule__XOtherOperatorExpression__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:11695: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:11699:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) )
            // InternalXcore.g:11700:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
            {
            // InternalXcore.g:11700:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
            // InternalXcore.g:11701:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0()); 
            }
            // InternalXcore.g:11702:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
            // InternalXcore.g:11702:3: rule__XOtherOperatorExpression__Group_1_0__0
            {
            pushFollow(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:11710: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:11714:1: ( rule__XOtherOperatorExpression__Group_1__1__Impl )
            // InternalXcore.g:11715:2: rule__XOtherOperatorExpression__Group_1__1__Impl
            {
            pushFollow(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:11721: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:11725:1: ( ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) )
            // InternalXcore.g:11726:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
            {
            // InternalXcore.g:11726:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
            // InternalXcore.g:11727:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1()); 
            }
            // InternalXcore.g:11728:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
            // InternalXcore.g:11728:3: rule__XOtherOperatorExpression__RightOperandAssignment_1_1
            {
            pushFollow(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:11737: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:11741:1: ( rule__XOtherOperatorExpression__Group_1_0__0__Impl )
            // InternalXcore.g:11742:2: rule__XOtherOperatorExpression__Group_1_0__0__Impl
            {
            pushFollow(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:11748: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:11752:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) )
            // InternalXcore.g:11753:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
            {
            // InternalXcore.g:11753:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
            // InternalXcore.g:11754:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0()); 
            }
            // InternalXcore.g:11755:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
            // InternalXcore.g:11755:3: rule__XOtherOperatorExpression__Group_1_0_0__0
            {
            pushFollow(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:11764: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:11768:1: ( rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 )
            // InternalXcore.g:11769:2: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1
            {
            pushFollow(FOLLOW_84);
            rule__XOtherOperatorExpression__Group_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:11776: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:11780:1: ( ( () ) )
            // InternalXcore.g:11781:1: ( () )
            {
            // InternalXcore.g:11781:1: ( () )
            // InternalXcore.g:11782:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
            }
            // InternalXcore.g:11783:2: ()
            // InternalXcore.g:11783:3: 
            {
            }

            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:11791: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:11795:1: ( rule__XOtherOperatorExpression__Group_1_0_0__1__Impl )
            // InternalXcore.g:11796:2: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl
            {
            pushFollow(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:11802: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:11806:1: ( ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) )
            // InternalXcore.g:11807:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
            {
            // InternalXcore.g:11807:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
            // InternalXcore.g:11808:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1()); 
            }
            // InternalXcore.g:11809:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
            // InternalXcore.g:11809:3: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1
            {
            pushFollow(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:11818: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:11822:1: ( rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 )
            // InternalXcore.g:11823:2: rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1
            {
            pushFollow(FOLLOW_61);
            rule__OpOther__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:11830:1: rule__OpOther__Group_2__0__Impl : ( '>' ) ;
    public final void rule__OpOther__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:11834:1: ( ( '>' ) )
            // InternalXcore.g:11835:1: ( '>' )
            {
            // InternalXcore.g:11835:1: ( '>' )
            // InternalXcore.g:11836:2: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0()); 
            }
            match(input,65,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:11845: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:11849:1: ( rule__OpOther__Group_2__1__Impl )
            // InternalXcore.g:11850:2: rule__OpOther__Group_2__1__Impl
            {
            pushFollow(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:11856:1: rule__OpOther__Group_2__1__Impl : ( '..' ) ;
    public final void rule__OpOther__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:11860:1: ( ( '..' ) )
            // InternalXcore.g:11861:1: ( '..' )
            {
            // InternalXcore.g:11861:1: ( '..' )
            // InternalXcore.g:11862:2: '..'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1()); 
            }
            match(input,69,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:11872: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:11876:1: ( rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 )
            // InternalXcore.g:11877:2: rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1
            {
            pushFollow(FOLLOW_86);
            rule__OpOther__Group_5__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:11884:1: rule__OpOther__Group_5__0__Impl : ( '>' ) ;
    public final void rule__OpOther__Group_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:11888:1: ( ( '>' ) )
            // InternalXcore.g:11889:1: ( '>' )
            {
            // InternalXcore.g:11889:1: ( '>' )
            // InternalXcore.g:11890:2: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0()); 
            }
            match(input,65,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:11899: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:11903:1: ( rule__OpOther__Group_5__1__Impl )
            // InternalXcore.g:11904:2: rule__OpOther__Group_5__1__Impl
            {
            pushFollow(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:11910: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:11914:1: ( ( ( rule__OpOther__Alternatives_5_1 ) ) )
            // InternalXcore.g:11915:1: ( ( rule__OpOther__Alternatives_5_1 ) )
            {
            // InternalXcore.g:11915:1: ( ( rule__OpOther__Alternatives_5_1 ) )
            // InternalXcore.g:11916:2: ( rule__OpOther__Alternatives_5_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getAlternatives_5_1()); 
            }
            // InternalXcore.g:11917:2: ( rule__OpOther__Alternatives_5_1 )
            // InternalXcore.g:11917:3: rule__OpOther__Alternatives_5_1
            {
            pushFollow(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:11926: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:11930:1: ( rule__OpOther__Group_5_1_0__0__Impl )
            // InternalXcore.g:11931:2: rule__OpOther__Group_5_1_0__0__Impl
            {
            pushFollow(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:11937: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:11941:1: ( ( ( rule__OpOther__Group_5_1_0_0__0 ) ) )
            // InternalXcore.g:11942:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
            {
            // InternalXcore.g:11942:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
            // InternalXcore.g:11943:2: ( rule__OpOther__Group_5_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0()); 
            }
            // InternalXcore.g:11944:2: ( rule__OpOther__Group_5_1_0_0__0 )
            // InternalXcore.g:11944:3: rule__OpOther__Group_5_1_0_0__0
            {
            pushFollow(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:11953: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:11957:1: ( rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 )
            // InternalXcore.g:11958:2: rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1
            {
            pushFollow(FOLLOW_86);
            rule__OpOther__Group_5_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:11965: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:11969:1: ( ( '>' ) )
            // InternalXcore.g:11970:1: ( '>' )
            {
            // InternalXcore.g:11970:1: ( '>' )
            // InternalXcore.g:11971:2: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0()); 
            }
            match(input,65,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:11980: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:11984:1: ( rule__OpOther__Group_5_1_0_0__1__Impl )
            // InternalXcore.g:11985:2: rule__OpOther__Group_5_1_0_0__1__Impl
            {
            pushFollow(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:11991: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:11995:1: ( ( '>' ) )
            // InternalXcore.g:11996:1: ( '>' )
            {
            // InternalXcore.g:11996:1: ( '>' )
            // InternalXcore.g:11997:2: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1()); 
            }
            match(input,65,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:12007: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:12011:1: ( rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 )
            // InternalXcore.g:12012:2: rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1
            {
            pushFollow(FOLLOW_87);
            rule__OpOther__Group_6__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:12019:1: rule__OpOther__Group_6__0__Impl : ( '<' ) ;
    public final void rule__OpOther__Group_6__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:12023:1: ( ( '<' ) )
            // InternalXcore.g:12024:1: ( '<' )
            {
            // InternalXcore.g:12024:1: ( '<' )
            // InternalXcore.g:12025:2: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0()); 
            }
            match(input,66,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:12034: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:12038:1: ( rule__OpOther__Group_6__1__Impl )
            // InternalXcore.g:12039:2: rule__OpOther__Group_6__1__Impl
            {
            pushFollow(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:12045: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:12049:1: ( ( ( rule__OpOther__Alternatives_6_1 ) ) )
            // InternalXcore.g:12050:1: ( ( rule__OpOther__Alternatives_6_1 ) )
            {
            // InternalXcore.g:12050:1: ( ( rule__OpOther__Alternatives_6_1 ) )
            // InternalXcore.g:12051:2: ( rule__OpOther__Alternatives_6_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getAlternatives_6_1()); 
            }
            // InternalXcore.g:12052:2: ( rule__OpOther__Alternatives_6_1 )
            // InternalXcore.g:12052:3: rule__OpOther__Alternatives_6_1
            {
            pushFollow(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:12061: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:12065:1: ( rule__OpOther__Group_6_1_0__0__Impl )
            // InternalXcore.g:12066:2: rule__OpOther__Group_6_1_0__0__Impl
            {
            pushFollow(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:12072: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:12076:1: ( ( ( rule__OpOther__Group_6_1_0_0__0 ) ) )
            // InternalXcore.g:12077:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
            {
            // InternalXcore.g:12077:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
            // InternalXcore.g:12078:2: ( rule__OpOther__Group_6_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getGroup_6_1_0_0()); 
            }
            // InternalXcore.g:12079:2: ( rule__OpOther__Group_6_1_0_0__0 )
            // InternalXcore.g:12079:3: rule__OpOther__Group_6_1_0_0__0
            {
            pushFollow(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:12088: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:12092:1: ( rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 )
            // InternalXcore.g:12093:2: rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1
            {
            pushFollow(FOLLOW_66);
            rule__OpOther__Group_6_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:12100: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:12104:1: ( ( '<' ) )
            // InternalXcore.g:12105:1: ( '<' )
            {
            // InternalXcore.g:12105:1: ( '<' )
            // InternalXcore.g:12106:2: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0()); 
            }
            match(input,66,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:12115: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:12119:1: ( rule__OpOther__Group_6_1_0_0__1__Impl )
            // InternalXcore.g:12120:2: rule__OpOther__Group_6_1_0_0__1__Impl
            {
            pushFollow(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:12126: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:12130:1: ( ( '<' ) )
            // InternalXcore.g:12131:1: ( '<' )
            {
            // InternalXcore.g:12131:1: ( '<' )
            // InternalXcore.g:12132:2: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1()); 
            }
            match(input,66,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:12142: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:12146:1: ( rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 )
            // InternalXcore.g:12147:2: rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1
            {
            pushFollow(FOLLOW_88);
            rule__XAdditiveExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:12154:1: rule__XAdditiveExpression__Group__0__Impl : ( ruleXMultiplicativeExpression ) ;
    public final void rule__XAdditiveExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:12158:1: ( ( ruleXMultiplicativeExpression ) )
            // InternalXcore.g:12159:1: ( ruleXMultiplicativeExpression )
            {
            // InternalXcore.g:12159:1: ( ruleXMultiplicativeExpression )
            // InternalXcore.g:12160:2: ruleXMultiplicativeExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0()); 
            }
            pushFollow(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:12169: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:12173:1: ( rule__XAdditiveExpression__Group__1__Impl )
            // InternalXcore.g:12174:2: rule__XAdditiveExpression__Group__1__Impl
            {
            pushFollow(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:12180: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:12184:1: ( ( ( rule__XAdditiveExpression__Group_1__0 )* ) )
            // InternalXcore.g:12185:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
            {
            // InternalXcore.g:12185:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
            // InternalXcore.g:12186:2: ( rule__XAdditiveExpression__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1()); 
            }
            // InternalXcore.g:12187:2: ( 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:12187:3: rule__XAdditiveExpression__Group_1__0
            	    {
            	    pushFollow(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:12196: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:12200:1: ( rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 )
            // InternalXcore.g:12201:2: rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1
            {
            pushFollow(FOLLOW_72);
            rule__XAdditiveExpression__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:12208: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:12212:1: ( ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) )
            // InternalXcore.g:12213:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
            {
            // InternalXcore.g:12213:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
            // InternalXcore.g:12214:2: ( rule__XAdditiveExpression__Group_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0()); 
            }
            // InternalXcore.g:12215:2: ( rule__XAdditiveExpression__Group_1_0__0 )
            // InternalXcore.g:12215:3: rule__XAdditiveExpression__Group_1_0__0
            {
            pushFollow(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:12223: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:12227:1: ( rule__XAdditiveExpression__Group_1__1__Impl )
            // InternalXcore.g:12228:2: rule__XAdditiveExpression__Group_1__1__Impl
            {
            pushFollow(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:12234: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:12238:1: ( ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) )
            // InternalXcore.g:12239:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
            {
            // InternalXcore.g:12239:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
            // InternalXcore.g:12240:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandAssignment_1_1()); 
            }
            // InternalXcore.g:12241:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
            // InternalXcore.g:12241:3: rule__XAdditiveExpression__RightOperandAssignment_1_1
            {
            pushFollow(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:12250: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:12254:1: ( rule__XAdditiveExpression__Group_1_0__0__Impl )
            // InternalXcore.g:12255:2: rule__XAdditiveExpression__Group_1_0__0__Impl
            {
            pushFollow(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:12261: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:12265:1: ( ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) )
            // InternalXcore.g:12266:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
            {
            // InternalXcore.g:12266:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
            // InternalXcore.g:12267:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0_0()); 
            }
            // InternalXcore.g:12268:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
            // InternalXcore.g:12268:3: rule__XAdditiveExpression__Group_1_0_0__0
            {
            pushFollow(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:12277: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:12281:1: ( rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 )
            // InternalXcore.g:12282:2: rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1
            {
            pushFollow(FOLLOW_88);
            rule__XAdditiveExpression__Group_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:12289: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:12293:1: ( ( () ) )
            // InternalXcore.g:12294:1: ( () )
            {
            // InternalXcore.g:12294:1: ( () )
            // InternalXcore.g:12295:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
            }
            // InternalXcore.g:12296:2: ()
            // InternalXcore.g:12296:3: 
            {
            }

            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:12304: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:12308:1: ( rule__XAdditiveExpression__Group_1_0_0__1__Impl )
            // InternalXcore.g:12309:2: rule__XAdditiveExpression__Group_1_0_0__1__Impl
            {
            pushFollow(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:12315: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:12319:1: ( ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) )
            // InternalXcore.g:12320:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
            {
            // InternalXcore.g:12320:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
            // InternalXcore.g:12321:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionAccess().getFeatureAssignment_1_0_0_1()); 
            }
            // InternalXcore.g:12322:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
            // InternalXcore.g:12322:3: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1
            {
            pushFollow(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:12331: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:12335:1: ( rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 )
            // InternalXcore.g:12336:2: rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1
            {
            pushFollow(FOLLOW_90);
            rule__XMultiplicativeExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:12343:1: rule__XMultiplicativeExpression__Group__0__Impl : ( ruleXUnaryOperation ) ;
    public final void rule__XMultiplicativeExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:12347:1: ( ( ruleXUnaryOperation ) )
            // InternalXcore.g:12348:1: ( ruleXUnaryOperation )
            {
            // InternalXcore.g:12348:1: ( ruleXUnaryOperation )
            // InternalXcore.g:12349:2: ruleXUnaryOperation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0()); 
            }
            pushFollow(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:12358: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:12362:1: ( rule__XMultiplicativeExpression__Group__1__Impl )
            // InternalXcore.g:12363:2: rule__XMultiplicativeExpression__Group__1__Impl
            {
            pushFollow(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:12369: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:12373:1: ( ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) )
            // InternalXcore.g:12374:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
            {
            // InternalXcore.g:12374:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
            // InternalXcore.g:12375:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1()); 
            }
            // InternalXcore.g:12376:2: ( 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:12376:3: rule__XMultiplicativeExpression__Group_1__0
            	    {
            	    pushFollow(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:12385: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:12389:1: ( rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 )
            // InternalXcore.g:12390:2: rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1
            {
            pushFollow(FOLLOW_72);
            rule__XMultiplicativeExpression__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:12397: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:12401:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) )
            // InternalXcore.g:12402:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
            {
            // InternalXcore.g:12402:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
            // InternalXcore.g:12403:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0()); 
            }
            // InternalXcore.g:12404:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
            // InternalXcore.g:12404:3: rule__XMultiplicativeExpression__Group_1_0__0
            {
            pushFollow(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:12412: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:12416:1: ( rule__XMultiplicativeExpression__Group_1__1__Impl )
            // InternalXcore.g:12417:2: rule__XMultiplicativeExpression__Group_1__1__Impl
            {
            pushFollow(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:12423: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:12427:1: ( ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) )
            // InternalXcore.g:12428:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
            {
            // InternalXcore.g:12428:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
            // InternalXcore.g:12429:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandAssignment_1_1()); 
            }
            // InternalXcore.g:12430:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
            // InternalXcore.g:12430:3: rule__XMultiplicativeExpression__RightOperandAssignment_1_1
            {
            pushFollow(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:12439: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:12443:1: ( rule__XMultiplicativeExpression__Group_1_0__0__Impl )
            // InternalXcore.g:12444:2: rule__XMultiplicativeExpression__Group_1_0__0__Impl
            {
            pushFollow(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:12450: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:12454:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) )
            // InternalXcore.g:12455:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
            {
            // InternalXcore.g:12455:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
            // InternalXcore.g:12456:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0_0()); 
            }
            // InternalXcore.g:12457:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
            // InternalXcore.g:12457:3: rule__XMultiplicativeExpression__Group_1_0_0__0
            {
            pushFollow(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:12466: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:12470:1: ( rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 )
            // InternalXcore.g:12471:2: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1
            {
            pushFollow(FOLLOW_90);
            rule__XMultiplicativeExpression__Group_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:12478: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:12482:1: ( ( () ) )
            // InternalXcore.g:12483:1: ( () )
            {
            // InternalXcore.g:12483:1: ( () )
            // InternalXcore.g:12484:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
            }
            // InternalXcore.g:12485:2: ()
            // InternalXcore.g:12485:3: 
            {
            }

            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:12493: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:12497:1: ( rule__XMultiplicativeExpression__Group_1_0_0__1__Impl )
            // InternalXcore.g:12498:2: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl
            {
            pushFollow(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:12504: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:12508:1: ( ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) )
            // InternalXcore.g:12509:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
            {
            // InternalXcore.g:12509:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
            // InternalXcore.g:12510:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureAssignment_1_0_0_1()); 
            }
            // InternalXcore.g:12511:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
            // InternalXcore.g:12511:3: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1
            {
            pushFollow(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:12520: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:12524:1: ( rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 )
            // InternalXcore.g:12525:2: rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1
            {
            pushFollow(FOLLOW_92);
            rule__XUnaryOperation__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:12532:1: rule__XUnaryOperation__Group_0__0__Impl : ( () ) ;
    public final void rule__XUnaryOperation__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:12536:1: ( ( () ) )
            // InternalXcore.g:12537:1: ( () )
            {
            // InternalXcore.g:12537:1: ( () )
            // InternalXcore.g:12538:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0()); 
            }
            // InternalXcore.g:12539:2: ()
            // InternalXcore.g:12539:3: 
            {
            }

            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:12547: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:12551:1: ( rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 )
            // InternalXcore.g:12552:2: rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2
            {
            pushFollow(FOLLOW_72);
            rule__XUnaryOperation__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:12559: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:12563:1: ( ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) )
            // InternalXcore.g:12564:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
            {
            // InternalXcore.g:12564:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
            // InternalXcore.g:12565:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXUnaryOperationAccess().getFeatureAssignment_0_1()); 
            }
            // InternalXcore.g:12566:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
            // InternalXcore.g:12566:3: rule__XUnaryOperation__FeatureAssignment_0_1
            {
            pushFollow(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:12574: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:12578:1: ( rule__XUnaryOperation__Group_0__2__Impl )
            // InternalXcore.g:12579:2: rule__XUnaryOperation__Group_0__2__Impl
            {
            pushFollow(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:12585: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:12589:1: ( ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) )
            // InternalXcore.g:12590:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
            {
            // InternalXcore.g:12590:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
            // InternalXcore.g:12591:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXUnaryOperationAccess().getOperandAssignment_0_2()); 
            }
            // InternalXcore.g:12592:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
            // InternalXcore.g:12592:3: rule__XUnaryOperation__OperandAssignment_0_2
            {
            pushFollow(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:12601: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:12605:1: ( rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 )
            // InternalXcore.g:12606:2: rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1
            {
            pushFollow(FOLLOW_18);
            rule__XCastedExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:12613:1: rule__XCastedExpression__Group__0__Impl : ( ruleXPostfixOperation ) ;
    public final void rule__XCastedExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:12617:1: ( ( ruleXPostfixOperation ) )
            // InternalXcore.g:12618:1: ( ruleXPostfixOperation )
            {
            // InternalXcore.g:12618:1: ( ruleXPostfixOperation )
            // InternalXcore.g:12619:2: ruleXPostfixOperation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCastedExpressionAccess().getXPostfixOperationParserRuleCall_0()); 
            }
            pushFollow(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:12628: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:12632:1: ( rule__XCastedExpression__Group__1__Impl )
            // InternalXcore.g:12633:2: rule__XCastedExpression__Group__1__Impl
            {
            pushFollow(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:12639: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:12643:1: ( ( ( rule__XCastedExpression__Group_1__0 )* ) )
            // InternalXcore.g:12644:1: ( ( rule__XCastedExpression__Group_1__0 )* )
            {
            // InternalXcore.g:12644:1: ( ( rule__XCastedExpression__Group_1__0 )* )
            // InternalXcore.g:12645:2: ( rule__XCastedExpression__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCastedExpressionAccess().getGroup_1()); 
            }
            // InternalXcore.g:12646:2: ( 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:12646:3: rule__XCastedExpression__Group_1__0
            	    {
            	    pushFollow(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:12655: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:12659:1: ( rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 )
            // InternalXcore.g:12660:2: rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1
            {
            pushFollow(FOLLOW_22);
            rule__XCastedExpression__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:12667: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:12671:1: ( ( ( rule__XCastedExpression__Group_1_0__0 ) ) )
            // InternalXcore.g:12672:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
            {
            // InternalXcore.g:12672:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
            // InternalXcore.g:12673:2: ( rule__XCastedExpression__Group_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0()); 
            }
            // InternalXcore.g:12674:2: ( rule__XCastedExpression__Group_1_0__0 )
            // InternalXcore.g:12674:3: rule__XCastedExpression__Group_1_0__0
            {
            pushFollow(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:12682: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:12686:1: ( rule__XCastedExpression__Group_1__1__Impl )
            // InternalXcore.g:12687:2: rule__XCastedExpression__Group_1__1__Impl
            {
            pushFollow(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:12693: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:12697:1: ( ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) )
            // InternalXcore.g:12698:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
            {
            // InternalXcore.g:12698:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
            // InternalXcore.g:12699:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCastedExpressionAccess().getTypeAssignment_1_1()); 
            }
            // InternalXcore.g:12700:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
            // InternalXcore.g:12700:3: rule__XCastedExpression__TypeAssignment_1_1
            {
            pushFollow(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:12709: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:12713:1: ( rule__XCastedExpression__Group_1_0__0__Impl )
            // InternalXcore.g:12714:2: rule__XCastedExpression__Group_1_0__0__Impl
            {
            pushFollow(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:12720: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:12724:1: ( ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) )
            // InternalXcore.g:12725:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
            {
            // InternalXcore.g:12725:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
            // InternalXcore.g:12726:2: ( rule__XCastedExpression__Group_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0_0()); 
            }
            // InternalXcore.g:12727:2: ( rule__XCastedExpression__Group_1_0_0__0 )
            // InternalXcore.g:12727:3: rule__XCastedExpression__Group_1_0_0__0
            {
            pushFollow(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:12736: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:12740:1: ( rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 )
            // InternalXcore.g:12741:2: rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1
            {
            pushFollow(FOLLOW_18);
            rule__XCastedExpression__Group_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:12748: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:12752:1: ( ( () ) )
            // InternalXcore.g:12753:1: ( () )
            {
            // InternalXcore.g:12753:1: ( () )
            // InternalXcore.g:12754:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0()); 
            }
            // InternalXcore.g:12755:2: ()
            // InternalXcore.g:12755:3: 
            {
            }

            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:12763: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:12767:1: ( rule__XCastedExpression__Group_1_0_0__1__Impl )
            // InternalXcore.g:12768:2: rule__XCastedExpression__Group_1_0_0__1__Impl
            {
            pushFollow(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:12774: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:12778:1: ( ( 'as' ) )
            // InternalXcore.g:12779:1: ( 'as' )
            {
            // InternalXcore.g:12779:1: ( 'as' )
            // InternalXcore.g:12780:2: 'as'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1()); 
            }
            match(input,26,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:12790: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:12794:1: ( rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 )
            // InternalXcore.g:12795:2: rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1
            {
            pushFollow(FOLLOW_94);
            rule__XPostfixOperation__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:12802:1: rule__XPostfixOperation__Group__0__Impl : ( ruleXMemberFeatureCall ) ;
    public final void rule__XPostfixOperation__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:12806:1: ( ( ruleXMemberFeatureCall ) )
            // InternalXcore.g:12807:1: ( ruleXMemberFeatureCall )
            {
            // InternalXcore.g:12807:1: ( ruleXMemberFeatureCall )
            // InternalXcore.g:12808:2: ruleXMemberFeatureCall
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPostfixOperationAccess().getXMemberFeatureCallParserRuleCall_0()); 
            }
            pushFollow(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:12817: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:12821:1: ( rule__XPostfixOperation__Group__1__Impl )
            // InternalXcore.g:12822:2: rule__XPostfixOperation__Group__1__Impl
            {
            pushFollow(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:12828: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:12832:1: ( ( ( rule__XPostfixOperation__Group_1__0 )? ) )
            // InternalXcore.g:12833:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
            {
            // InternalXcore.g:12833:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
            // InternalXcore.g:12834:2: ( rule__XPostfixOperation__Group_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPostfixOperationAccess().getGroup_1()); 
            }
            // InternalXcore.g:12835:2: ( 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:12835:3: rule__XPostfixOperation__Group_1__0
                    {
                    pushFollow(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:12844: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:12848:1: ( rule__XPostfixOperation__Group_1__0__Impl )
            // InternalXcore.g:12849:2: rule__XPostfixOperation__Group_1__0__Impl
            {
            pushFollow(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:12855: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:12859:1: ( ( ( rule__XPostfixOperation__Group_1_0__0 ) ) )
            // InternalXcore.g:12860:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
            {
            // InternalXcore.g:12860:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
            // InternalXcore.g:12861:2: ( rule__XPostfixOperation__Group_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPostfixOperationAccess().getGroup_1_0()); 
            }
            // InternalXcore.g:12862:2: ( rule__XPostfixOperation__Group_1_0__0 )
            // InternalXcore.g:12862:3: rule__XPostfixOperation__Group_1_0__0
            {
            pushFollow(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:12871: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:12875:1: ( rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 )
            // InternalXcore.g:12876:2: rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1
            {
            pushFollow(FOLLOW_94);
            rule__XPostfixOperation__Group_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:12883: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:12887:1: ( ( () ) )
            // InternalXcore.g:12888:1: ( () )
            {
            // InternalXcore.g:12888:1: ( () )
            // InternalXcore.g:12889:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0()); 
            }
            // InternalXcore.g:12890:2: ()
            // InternalXcore.g:12890:3: 
            {
            }

            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:12898: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:12902:1: ( rule__XPostfixOperation__Group_1_0__1__Impl )
            // InternalXcore.g:12903:2: rule__XPostfixOperation__Group_1_0__1__Impl
            {
            pushFollow(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:12909: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:12913:1: ( ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) )
            // InternalXcore.g:12914:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
            {
            // InternalXcore.g:12914:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
            // InternalXcore.g:12915:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPostfixOperationAccess().getFeatureAssignment_1_0_1()); 
            }
            // InternalXcore.g:12916:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
            // InternalXcore.g:12916:3: rule__XPostfixOperation__FeatureAssignment_1_0_1
            {
            pushFollow(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:12925: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:12929:1: ( rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 )
            // InternalXcore.g:12930:2: rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1
            {
            pushFollow(FOLLOW_95);
            rule__XMemberFeatureCall__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:12937:1: rule__XMemberFeatureCall__Group__0__Impl : ( ruleXPrimaryExpression ) ;
    public final void rule__XMemberFeatureCall__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:12941:1: ( ( ruleXPrimaryExpression ) )
            // InternalXcore.g:12942:1: ( ruleXPrimaryExpression )
            {
            // InternalXcore.g:12942:1: ( ruleXPrimaryExpression )
            // InternalXcore.g:12943:2: ruleXPrimaryExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0()); 
            }
            pushFollow(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:12952: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:12956:1: ( rule__XMemberFeatureCall__Group__1__Impl )
            // InternalXcore.g:12957:2: rule__XMemberFeatureCall__Group__1__Impl
            {
            pushFollow(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:12963: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:12967:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) )
            // InternalXcore.g:12968:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
            {
            // InternalXcore.g:12968:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
            // InternalXcore.g:12969:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1()); 
            }
            // InternalXcore.g:12970:2: ( 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:12970:3: rule__XMemberFeatureCall__Alternatives_1
            	    {
            	    pushFollow(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:12979: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:12983:1: ( rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 )
            // InternalXcore.g:12984:2: rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1
            {
            pushFollow(FOLLOW_72);
            rule__XMemberFeatureCall__Group_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:12991: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:12995:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) )
            // InternalXcore.g:12996:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
            {
            // InternalXcore.g:12996:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
            // InternalXcore.g:12997:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0()); 
            }
            // InternalXcore.g:12998:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
            // InternalXcore.g:12998:3: rule__XMemberFeatureCall__Group_1_0_0__0
            {
            pushFollow(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:13006: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:13010:1: ( rule__XMemberFeatureCall__Group_1_0__1__Impl )
            // InternalXcore.g:13011:2: rule__XMemberFeatureCall__Group_1_0__1__Impl
            {
            pushFollow(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:13017: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:13021:1: ( ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) )
            // InternalXcore.g:13022:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
            {
            // InternalXcore.g:13022:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
            // InternalXcore.g:13023:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getValueAssignment_1_0_1()); 
            }
            // InternalXcore.g:13024:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
            // InternalXcore.g:13024:3: rule__XMemberFeatureCall__ValueAssignment_1_0_1
            {
            pushFollow(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:13033: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:13037:1: ( rule__XMemberFeatureCall__Group_1_0_0__0__Impl )
            // InternalXcore.g:13038:2: rule__XMemberFeatureCall__Group_1_0_0__0__Impl
            {
            pushFollow(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:13044: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:13048:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) )
            // InternalXcore.g:13049:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
            {
            // InternalXcore.g:13049:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
            // InternalXcore.g:13050:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0_0()); 
            }
            // InternalXcore.g:13051:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
            // InternalXcore.g:13051:3: rule__XMemberFeatureCall__Group_1_0_0_0__0
            {
            pushFollow(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:13060: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:13064:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 )
            // InternalXcore.g:13065:2: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1
            {
            pushFollow(FOLLOW_97);
            rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:13072: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:13076:1: ( ( () ) )
            // InternalXcore.g:13077:1: ( () )
            {
            // InternalXcore.g:13077:1: ( () )
            // InternalXcore.g:13078:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0()); 
            }
            // InternalXcore.g:13079:2: ()
            // InternalXcore.g:13079:3: 
            {
            }

            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:13087: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:13091:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 )
            // InternalXcore.g:13092:2: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2
            {
            pushFollow(FOLLOW_71);
            rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:13099: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:13103:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) )
            // InternalXcore.g:13104:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
            {
            // InternalXcore.g:13104:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
            // InternalXcore.g:13105:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_0_0_0_1()); 
            }
            // InternalXcore.g:13106:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
            // InternalXcore.g:13106:3: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1
            {
            pushFollow(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:13114: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:13118:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 )
            // InternalXcore.g:13119:2: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3
            {
            pushFollow(FOLLOW_15);
            rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:13126: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:13130:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) )
            // InternalXcore.g:13131:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
            {
            // InternalXcore.g:13131:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
            // InternalXcore.g:13132:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_0_0_0_2()); 
            }
            // InternalXcore.g:13133:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
            // InternalXcore.g:13133:3: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2
            {
            pushFollow(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:13141: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:13145:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl )
            // InternalXcore.g:13146:2: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl
            {
            pushFollow(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:13152: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:13156:1: ( ( ruleOpSingleAssign ) )
            // InternalXcore.g:13157:1: ( ruleOpSingleAssign )
            {
            // InternalXcore.g:13157:1: ( ruleOpSingleAssign )
            // InternalXcore.g:13158:2: ruleOpSingleAssign
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3()); 
            }
            pushFollow(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:13168: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:13172:1: ( rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 )
            // InternalXcore.g:13173:2: rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1
            {
            pushFollow(FOLLOW_98);
            rule__XMemberFeatureCall__Group_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:13180: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:13184:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) )
            // InternalXcore.g:13185:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
            {
            // InternalXcore.g:13185:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
            // InternalXcore.g:13186:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0()); 
            }
            // InternalXcore.g:13187:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
            // InternalXcore.g:13187:3: rule__XMemberFeatureCall__Group_1_1_0__0
            {
            pushFollow(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:13195: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:13199:1: ( rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 )
            // InternalXcore.g:13200:2: rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2
            {
            pushFollow(FOLLOW_98);
            rule__XMemberFeatureCall__Group_1_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:13207: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:13211:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) )
            // InternalXcore.g:13212:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
            {
            // InternalXcore.g:13212:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
            // InternalXcore.g:13213:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1()); 
            }
            // InternalXcore.g:13214:2: ( 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:13214:3: rule__XMemberFeatureCall__Group_1_1_1__0
                    {
                    pushFollow(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:13222: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:13226:1: ( rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 )
            // InternalXcore.g:13227:2: rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3
            {
            pushFollow(FOLLOW_99);
            rule__XMemberFeatureCall__Group_1_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:13234: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:13238:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) )
            // InternalXcore.g:13239:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
            {
            // InternalXcore.g:13239:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
            // InternalXcore.g:13240:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_1_2()); 
            }
            // InternalXcore.g:13241:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
            // InternalXcore.g:13241:3: rule__XMemberFeatureCall__FeatureAssignment_1_1_2
            {
            pushFollow(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:13249: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:13253:1: ( rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 )
            // InternalXcore.g:13254:2: rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4
            {
            pushFollow(FOLLOW_99);
            rule__XMemberFeatureCall__Group_1_1__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:13261: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:13265:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) )
            // InternalXcore.g:13266:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
            {
            // InternalXcore.g:13266:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
            // InternalXcore.g:13267:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3()); 
            }
            // InternalXcore.g:13268:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
            int alt132=2;
            alt132 = dfa132.predict(input);
            switch (alt132) {
                case 1 :
                    // InternalXcore.g:13268:3: rule__XMemberFeatureCall__Group_1_1_3__0
                    {
                    pushFollow(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:13276: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:13280:1: ( rule__XMemberFeatureCall__Group_1_1__4__Impl )
            // InternalXcore.g:13281:2: rule__XMemberFeatureCall__Group_1_1__4__Impl
            {
            pushFollow(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:13287: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:13291:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) )
            // InternalXcore.g:13292:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
            {
            // InternalXcore.g:13292:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
            // InternalXcore.g:13293:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_4()); 
            }
            // InternalXcore.g:13294:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
            int alt133=2;
            alt133 = dfa133.predict(input);
            switch (alt133) {
                case 1 :
                    // InternalXcore.g:13294:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
                    {
                    pushFollow(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:13303: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:13307:1: ( rule__XMemberFeatureCall__Group_1_1_0__0__Impl )
            // InternalXcore.g:13308:2: rule__XMemberFeatureCall__Group_1_1_0__0__Impl
            {
            pushFollow(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:13314: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:13318:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) )
            // InternalXcore.g:13319:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
            {
            // InternalXcore.g:13319:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
            // InternalXcore.g:13320:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0_0()); 
            }
            // InternalXcore.g:13321:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
            // InternalXcore.g:13321:3: rule__XMemberFeatureCall__Group_1_1_0_0__0
            {
            pushFollow(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:13330: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:13334:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 )
            // InternalXcore.g:13335:2: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1
            {
            pushFollow(FOLLOW_95);
            rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:13342: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:13346:1: ( ( () ) )
            // InternalXcore.g:13347:1: ( () )
            {
            // InternalXcore.g:13347:1: ( () )
            // InternalXcore.g:13348:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0()); 
            }
            // InternalXcore.g:13349:2: ()
            // InternalXcore.g:13349:3: 
            {
            }

            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:13357: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:13361:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl )
            // InternalXcore.g:13362:2: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl
            {
            pushFollow(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:13368: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:13372:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) )
            // InternalXcore.g:13373:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
            {
            // InternalXcore.g:13373:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
            // InternalXcore.g:13374:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_0_0_1()); 
            }
            // InternalXcore.g:13375:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
            // InternalXcore.g:13375:3: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1
            {
            pushFollow(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:13384: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:13388:1: ( rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 )
            // InternalXcore.g:13389:2: rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1
            {
            pushFollow(FOLLOW_100);
            rule__XMemberFeatureCall__Group_1_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:13396: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:13400:1: ( ( '<' ) )
            // InternalXcore.g:13401:1: ( '<' )
            {
            // InternalXcore.g:13401:1: ( '<' )
            // InternalXcore.g:13402:2: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0()); 
            }
            match(input,66,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:13411: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:13415:1: ( rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 )
            // InternalXcore.g:13416:2: rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2
            {
            pushFollow(FOLLOW_25);
            rule__XMemberFeatureCall__Group_1_1_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:13423: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:13427:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) )
            // InternalXcore.g:13428:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
            {
            // InternalXcore.g:13428:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
            // InternalXcore.g:13429:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_1()); 
            }
            // InternalXcore.g:13430:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
            // InternalXcore.g:13430:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1
            {
            pushFollow(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:13438: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:13442:1: ( rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 )
            // InternalXcore.g:13443:2: rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3
            {
            pushFollow(FOLLOW_25);
            rule__XMemberFeatureCall__Group_1_1_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:13450: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:13454:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) )
            // InternalXcore.g:13455:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
            {
            // InternalXcore.g:13455:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
            // InternalXcore.g:13456:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1_2()); 
            }
            // InternalXcore.g:13457:2: ( 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:13457:3: rule__XMemberFeatureCall__Group_1_1_1_2__0
            	    {
            	    pushFollow(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:13465: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:13469:1: ( rule__XMemberFeatureCall__Group_1_1_1__3__Impl )
            // InternalXcore.g:13470:2: rule__XMemberFeatureCall__Group_1_1_1__3__Impl
            {
            pushFollow(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:13476: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:13480:1: ( ( '>' ) )
            // InternalXcore.g:13481:1: ( '>' )
            {
            // InternalXcore.g:13481:1: ( '>' )
            // InternalXcore.g:13482:2: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3()); 
            }
            match(input,65,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:13492: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:13496:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 )
            // InternalXcore.g:13497:2: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1
            {
            pushFollow(FOLLOW_100);
            rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:13504: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:13508:1: ( ( ',' ) )
            // InternalXcore.g:13509:1: ( ',' )
            {
            // InternalXcore.g:13509:1: ( ',' )
            // InternalXcore.g:13510:2: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0()); 
            }
            match(input,87,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:13519: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:13523:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl )
            // InternalXcore.g:13524:2: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl
            {
            pushFollow(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:13530: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:13534:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) )
            // InternalXcore.g:13535:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
            {
            // InternalXcore.g:13535:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
            // InternalXcore.g:13536:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_2_1()); 
            }
            // InternalXcore.g:13537:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
            // InternalXcore.g:13537:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1
            {
            pushFollow(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:13546: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:13550:1: ( rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 )
            // InternalXcore.g:13551:2: rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1
            {
            pushFollow(FOLLOW_101);
            rule__XMemberFeatureCall__Group_1_1_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:13558: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:13562:1: ( ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) )
            // InternalXcore.g:13563:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
            {
            // InternalXcore.g:13563:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
            // InternalXcore.g:13564:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallAssignment_1_1_3_0()); 
            }
            // InternalXcore.g:13565:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
            // InternalXcore.g:13565:3: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0
            {
            pushFollow(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:13573: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:13577:1: ( rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 )
            // InternalXcore.g:13578:2: rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2
            {
            pushFollow(FOLLOW_101);
            rule__XMemberFeatureCall__Group_1_1_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:13585: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:13589:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) )
            // InternalXcore.g:13590:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
            {
            // InternalXcore.g:13590:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
            // InternalXcore.g:13591:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_3_1()); 
            }
            // InternalXcore.g:13592:2: ( 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:13592:3: rule__XMemberFeatureCall__Alternatives_1_1_3_1
                    {
                    pushFollow(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:13600: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:13604:1: ( rule__XMemberFeatureCall__Group_1_1_3__2__Impl )
            // InternalXcore.g:13605:2: rule__XMemberFeatureCall__Group_1_1_3__2__Impl
            {
            pushFollow(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:13611: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:13615:1: ( ( ')' ) )
            // InternalXcore.g:13616:1: ( ')' )
            {
            // InternalXcore.g:13616:1: ( ')' )
            // InternalXcore.g:13617:2: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2()); 
            }
            match(input,86,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:13627: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:13631:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 )
            // InternalXcore.g:13632:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1
            {
            pushFollow(FOLLOW_38);
            rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:13639: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:13643:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) )
            // InternalXcore.g:13644:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
            {
            // InternalXcore.g:13644:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
            // InternalXcore.g:13645:2: ( 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:13646:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
            // InternalXcore.g:13646:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0
            {
            pushFollow(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:13654: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:13658:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl )
            // InternalXcore.g:13659:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl
            {
            pushFollow(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:13665: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:13669:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) )
            // InternalXcore.g:13670:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
            {
            // InternalXcore.g:13670:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
            // InternalXcore.g:13671:2: ( 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:13672:2: ( 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:13672:3: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0
            	    {
            	    pushFollow(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:13681: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:13685:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 )
            // InternalXcore.g:13686:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1
            {
            pushFollow(FOLLOW_72);
            rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:13693: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:13697:1: ( ( ',' ) )
            // InternalXcore.g:13698:1: ( ',' )
            {
            // InternalXcore.g:13698:1: ( ',' )
            // InternalXcore.g:13699:2: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0()); 
            }
            match(input,87,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:13708: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:13712:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl )
            // InternalXcore.g:13713:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl
            {
            pushFollow(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:13719: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:13723:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) )
            // InternalXcore.g:13724:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
            {
            // InternalXcore.g:13724:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
            // InternalXcore.g:13725:2: ( 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:13726:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
            // InternalXcore.g:13726:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1
            {
            pushFollow(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:13735: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:13739:1: ( rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 )
            // InternalXcore.g:13740:2: rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1
            {
            pushFollow(FOLLOW_102);
            rule__XSetLiteral__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:13747:1: rule__XSetLiteral__Group__0__Impl : ( () ) ;
    public final void rule__XSetLiteral__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:13751:1: ( ( () ) )
            // InternalXcore.g:13752:1: ( () )
            {
            // InternalXcore.g:13752:1: ( () )
            // InternalXcore.g:13753:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0()); 
            }
            // InternalXcore.g:13754:2: ()
            // InternalXcore.g:13754:3: 
            {
            }

            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:13762: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:13766:1: ( rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 )
            // InternalXcore.g:13767:2: rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2
            {
            pushFollow(FOLLOW_26);
            rule__XSetLiteral__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:13774:1: rule__XSetLiteral__Group__1__Impl : ( '#' ) ;
    public final void rule__XSetLiteral__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:13778:1: ( ( '#' ) )
            // InternalXcore.g:13779:1: ( '#' )
            {
            // InternalXcore.g:13779:1: ( '#' )
            // InternalXcore.g:13780:2: '#'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1()); 
            }
            match(input,96,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:13789: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:13793:1: ( rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 )
            // InternalXcore.g:13794:2: rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3
            {
            pushFollow(FOLLOW_63);
            rule__XSetLiteral__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:13801:1: rule__XSetLiteral__Group__2__Impl : ( '{' ) ;
    public final void rule__XSetLiteral__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:13805:1: ( ( '{' ) )
            // InternalXcore.g:13806:1: ( '{' )
            {
            // InternalXcore.g:13806:1: ( '{' )
            // InternalXcore.g:13807:2: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2()); 
            }
            match(input,89,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:13816: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:13820:1: ( rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 )
            // InternalXcore.g:13821:2: rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4
            {
            pushFollow(FOLLOW_63);
            rule__XSetLiteral__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:13828: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:13832:1: ( ( ( rule__XSetLiteral__Group_3__0 )? ) )
            // InternalXcore.g:13833:1: ( ( rule__XSetLiteral__Group_3__0 )? )
            {
            // InternalXcore.g:13833:1: ( ( rule__XSetLiteral__Group_3__0 )? )
            // InternalXcore.g:13834:2: ( rule__XSetLiteral__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralAccess().getGroup_3()); 
            }
            // InternalXcore.g:13835:2: ( 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:13835:3: rule__XSetLiteral__Group_3__0
                    {
                    pushFollow(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:13843: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:13847:1: ( rule__XSetLiteral__Group__4__Impl )
            // InternalXcore.g:13848:2: rule__XSetLiteral__Group__4__Impl
            {
            pushFollow(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:13854:1: rule__XSetLiteral__Group__4__Impl : ( '}' ) ;
    public final void rule__XSetLiteral__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:13858:1: ( ( '}' ) )
            // InternalXcore.g:13859:1: ( '}' )
            {
            // InternalXcore.g:13859:1: ( '}' )
            // InternalXcore.g:13860:2: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4()); 
            }
            match(input,90,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:13870: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:13874:1: ( rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 )
            // InternalXcore.g:13875:2: rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1
            {
            pushFollow(FOLLOW_38);
            rule__XSetLiteral__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:13882: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:13886:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) )
            // InternalXcore.g:13887:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
            {
            // InternalXcore.g:13887:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
            // InternalXcore.g:13888:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_0()); 
            }
            // InternalXcore.g:13889:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
            // InternalXcore.g:13889:3: rule__XSetLiteral__ElementsAssignment_3_0
            {
            pushFollow(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:13897: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:13901:1: ( rule__XSetLiteral__Group_3__1__Impl )
            // InternalXcore.g:13902:2: rule__XSetLiteral__Group_3__1__Impl
            {
            pushFollow(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:13908: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:13912:1: ( ( ( rule__XSetLiteral__Group_3_1__0 )* ) )
            // InternalXcore.g:13913:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
            {
            // InternalXcore.g:13913:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
            // InternalXcore.g:13914:2: ( rule__XSetLiteral__Group_3_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralAccess().getGroup_3_1()); 
            }
            // InternalXcore.g:13915:2: ( 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:13915:3: rule__XSetLiteral__Group_3_1__0
            	    {
            	    pushFollow(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:13924: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:13928:1: ( rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 )
            // InternalXcore.g:13929:2: rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1
            {
            pushFollow(FOLLOW_72);
            rule__XSetLiteral__Group_3_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:13936: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:13940:1: ( ( ',' ) )
            // InternalXcore.g:13941:1: ( ',' )
            {
            // InternalXcore.g:13941:1: ( ',' )
            // InternalXcore.g:13942:2: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0()); 
            }
            match(input,87,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:13951: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:13955:1: ( rule__XSetLiteral__Group_3_1__1__Impl )
            // InternalXcore.g:13956:2: rule__XSetLiteral__Group_3_1__1__Impl
            {
            pushFollow(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:13962: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:13966:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) )
            // InternalXcore.g:13967:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
            {
            // InternalXcore.g:13967:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
            // InternalXcore.g:13968:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_1_1()); 
            }
            // InternalXcore.g:13969:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
            // InternalXcore.g:13969:3: rule__XSetLiteral__ElementsAssignment_3_1_1
            {
            pushFollow(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:13978: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:13982:1: ( rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 )
            // InternalXcore.g:13983:2: rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1
            {
            pushFollow(FOLLOW_102);
            rule__XListLiteral__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:13990:1: rule__XListLiteral__Group__0__Impl : ( () ) ;
    public final void rule__XListLiteral__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:13994:1: ( ( () ) )
            // InternalXcore.g:13995:1: ( () )
            {
            // InternalXcore.g:13995:1: ( () )
            // InternalXcore.g:13996:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralAccess().getXListLiteralAction_0()); 
            }
            // InternalXcore.g:13997:2: ()
            // InternalXcore.g:13997:3: 
            {
            }

            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:14005: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:14009:1: ( rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 )
            // InternalXcore.g:14010:2: rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2
            {
            pushFollow(FOLLOW_103);
            rule__XListLiteral__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:14017:1: rule__XListLiteral__Group__1__Impl : ( '#' ) ;
    public final void rule__XListLiteral__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:14021:1: ( ( '#' ) )
            // InternalXcore.g:14022:1: ( '#' )
            {
            // InternalXcore.g:14022:1: ( '#' )
            // InternalXcore.g:14023:2: '#'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1()); 
            }
            match(input,96,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:14032: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:14036:1: ( rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 )
            // InternalXcore.g:14037:2: rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3
            {
            pushFollow(FOLLOW_104);
            rule__XListLiteral__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:14044:1: rule__XListLiteral__Group__2__Impl : ( '[' ) ;
    public final void rule__XListLiteral__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:14048:1: ( ( '[' ) )
            // InternalXcore.g:14049:1: ( '[' )
            {
            // InternalXcore.g:14049:1: ( '[' )
            // InternalXcore.g:14050:2: '['
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2()); 
            }
            match(input,92,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:14059: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:14063:1: ( rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 )
            // InternalXcore.g:14064:2: rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4
            {
            pushFollow(FOLLOW_104);
            rule__XListLiteral__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:14071: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:14075:1: ( ( ( rule__XListLiteral__Group_3__0 )? ) )
            // InternalXcore.g:14076:1: ( ( rule__XListLiteral__Group_3__0 )? )
            {
            // InternalXcore.g:14076:1: ( ( rule__XListLiteral__Group_3__0 )? )
            // InternalXcore.g:14077:2: ( rule__XListLiteral__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralAccess().getGroup_3()); 
            }
            // InternalXcore.g:14078:2: ( 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:14078:3: rule__XListLiteral__Group_3__0
                    {
                    pushFollow(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:14086: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:14090:1: ( rule__XListLiteral__Group__4__Impl )
            // InternalXcore.g:14091:2: rule__XListLiteral__Group__4__Impl
            {
            pushFollow(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:14097:1: rule__XListLiteral__Group__4__Impl : ( ']' ) ;
    public final void rule__XListLiteral__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:14101:1: ( ( ']' ) )
            // InternalXcore.g:14102:1: ( ']' )
            {
            // InternalXcore.g:14102:1: ( ']' )
            // InternalXcore.g:14103:2: ']'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4()); 
            }
            match(input,93,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:14113: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:14117:1: ( rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 )
            // InternalXcore.g:14118:2: rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1
            {
            pushFollow(FOLLOW_38);
            rule__XListLiteral__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:14125: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:14129:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) )
            // InternalXcore.g:14130:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
            {
            // InternalXcore.g:14130:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
            // InternalXcore.g:14131:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_0()); 
            }
            // InternalXcore.g:14132:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
            // InternalXcore.g:14132:3: rule__XListLiteral__ElementsAssignment_3_0
            {
            pushFollow(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:14140: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:14144:1: ( rule__XListLiteral__Group_3__1__Impl )
            // InternalXcore.g:14145:2: rule__XListLiteral__Group_3__1__Impl
            {
            pushFollow(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:14151: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:14155:1: ( ( ( rule__XListLiteral__Group_3_1__0 )* ) )
            // InternalXcore.g:14156:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
            {
            // InternalXcore.g:14156:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
            // InternalXcore.g:14157:2: ( rule__XListLiteral__Group_3_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralAccess().getGroup_3_1()); 
            }
            // InternalXcore.g:14158:2: ( 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:14158:3: rule__XListLiteral__Group_3_1__0
            	    {
            	    pushFollow(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:14167: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:14171:1: ( rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 )
            // InternalXcore.g:14172:2: rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1
            {
            pushFollow(FOLLOW_72);
            rule__XListLiteral__Group_3_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:14179: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:14183:1: ( ( ',' ) )
            // InternalXcore.g:14184:1: ( ',' )
            {
            // InternalXcore.g:14184:1: ( ',' )
            // InternalXcore.g:14185:2: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0()); 
            }
            match(input,87,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:14194: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:14198:1: ( rule__XListLiteral__Group_3_1__1__Impl )
            // InternalXcore.g:14199:2: rule__XListLiteral__Group_3_1__1__Impl
            {
            pushFollow(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:14205: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:14209:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) )
            // InternalXcore.g:14210:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
            {
            // InternalXcore.g:14210:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
            // InternalXcore.g:14211:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_1_1()); 
            }
            // InternalXcore.g:14212:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
            // InternalXcore.g:14212:3: rule__XListLiteral__ElementsAssignment_3_1_1
            {
            pushFollow(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:14221: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:14225:1: ( rule__XClosure__Group__0__Impl rule__XClosure__Group__1 )
            // InternalXcore.g:14226:2: rule__XClosure__Group__0__Impl rule__XClosure__Group__1
            {
            pushFollow(FOLLOW_105);
            rule__XClosure__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:14233: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:14237:1: ( ( ( rule__XClosure__Group_0__0 ) ) )
            // InternalXcore.g:14238:1: ( ( rule__XClosure__Group_0__0 ) )
            {
            // InternalXcore.g:14238:1: ( ( rule__XClosure__Group_0__0 ) )
            // InternalXcore.g:14239:2: ( rule__XClosure__Group_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getGroup_0()); 
            }
            // InternalXcore.g:14240:2: ( rule__XClosure__Group_0__0 )
            // InternalXcore.g:14240:3: rule__XClosure__Group_0__0
            {
            pushFollow(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:14248: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:14252:1: ( rule__XClosure__Group__1__Impl rule__XClosure__Group__2 )
            // InternalXcore.g:14253:2: rule__XClosure__Group__1__Impl rule__XClosure__Group__2
            {
            pushFollow(FOLLOW_105);
            rule__XClosure__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:14260: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:14264:1: ( ( ( rule__XClosure__Group_1__0 )? ) )
            // InternalXcore.g:14265:1: ( ( rule__XClosure__Group_1__0 )? )
            {
            // InternalXcore.g:14265:1: ( ( rule__XClosure__Group_1__0 )? )
            // InternalXcore.g:14266:2: ( rule__XClosure__Group_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getGroup_1()); 
            }
            // InternalXcore.g:14267:2: ( rule__XClosure__Group_1__0 )?
            int alt141=2;
            alt141 = dfa141.predict(input);
            switch (alt141) {
                case 1 :
                    // InternalXcore.g:14267:3: rule__XClosure__Group_1__0
                    {
                    pushFollow(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:14275: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:14279:1: ( rule__XClosure__Group__2__Impl rule__XClosure__Group__3 )
            // InternalXcore.g:14280:2: rule__XClosure__Group__2__Impl rule__XClosure__Group__3
            {
            pushFollow(FOLLOW_106);
            rule__XClosure__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:14287: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:14291:1: ( ( ( rule__XClosure__ExpressionAssignment_2 ) ) )
            // InternalXcore.g:14292:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
            {
            // InternalXcore.g:14292:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
            // InternalXcore.g:14293:2: ( rule__XClosure__ExpressionAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getExpressionAssignment_2()); 
            }
            // InternalXcore.g:14294:2: ( rule__XClosure__ExpressionAssignment_2 )
            // InternalXcore.g:14294:3: rule__XClosure__ExpressionAssignment_2
            {
            pushFollow(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:14302: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:14306:1: ( rule__XClosure__Group__3__Impl )
            // InternalXcore.g:14307:2: rule__XClosure__Group__3__Impl
            {
            pushFollow(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:14313:1: rule__XClosure__Group__3__Impl : ( ']' ) ;
    public final void rule__XClosure__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:14317:1: ( ( ']' ) )
            // InternalXcore.g:14318:1: ( ']' )
            {
            // InternalXcore.g:14318:1: ( ']' )
            // InternalXcore.g:14319:2: ']'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3()); 
            }
            match(input,93,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:14329: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:14333:1: ( rule__XClosure__Group_0__0__Impl )
            // InternalXcore.g:14334:2: rule__XClosure__Group_0__0__Impl
            {
            pushFollow(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:14340: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:14344:1: ( ( ( rule__XClosure__Group_0_0__0 ) ) )
            // InternalXcore.g:14345:1: ( ( rule__XClosure__Group_0_0__0 ) )
            {
            // InternalXcore.g:14345:1: ( ( rule__XClosure__Group_0_0__0 ) )
            // InternalXcore.g:14346:2: ( rule__XClosure__Group_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getGroup_0_0()); 
            }
            // InternalXcore.g:14347:2: ( rule__XClosure__Group_0_0__0 )
            // InternalXcore.g:14347:3: rule__XClosure__Group_0_0__0
            {
            pushFollow(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:14356: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:14360:1: ( rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 )
            // InternalXcore.g:14361:2: rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1
            {
            pushFollow(FOLLOW_103);
            rule__XClosure__Group_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:14368: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:14372:1: ( ( () ) )
            // InternalXcore.g:14373:1: ( () )
            {
            // InternalXcore.g:14373:1: ( () )
            // InternalXcore.g:14374:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getXClosureAction_0_0_0()); 
            }
            // InternalXcore.g:14375:2: ()
            // InternalXcore.g:14375:3: 
            {
            }

            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:14383: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:14387:1: ( rule__XClosure__Group_0_0__1__Impl )
            // InternalXcore.g:14388:2: rule__XClosure__Group_0_0__1__Impl
            {
            pushFollow(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:14394: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:14398:1: ( ( '[' ) )
            // InternalXcore.g:14399:1: ( '[' )
            {
            // InternalXcore.g:14399:1: ( '[' )
            // InternalXcore.g:14400:2: '['
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1()); 
            }
            match(input,92,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:14410: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:14414:1: ( rule__XClosure__Group_1__0__Impl )
            // InternalXcore.g:14415:2: rule__XClosure__Group_1__0__Impl
            {
            pushFollow(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:14421: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:14425:1: ( ( ( rule__XClosure__Group_1_0__0 ) ) )
            // InternalXcore.g:14426:1: ( ( rule__XClosure__Group_1_0__0 ) )
            {
            // InternalXcore.g:14426:1: ( ( rule__XClosure__Group_1_0__0 ) )
            // InternalXcore.g:14427:2: ( rule__XClosure__Group_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getGroup_1_0()); 
            }
            // InternalXcore.g:14428:2: ( rule__XClosure__Group_1_0__0 )
            // InternalXcore.g:14428:3: rule__XClosure__Group_1_0__0
            {
            pushFollow(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:14437: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:14441:1: ( rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 )
            // InternalXcore.g:14442:2: rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1
            {
            pushFollow(FOLLOW_107);
            rule__XClosure__Group_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:14449: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:14453:1: ( ( ( rule__XClosure__Group_1_0_0__0 )? ) )
            // InternalXcore.g:14454:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
            {
            // InternalXcore.g:14454:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
            // InternalXcore.g:14455:2: ( rule__XClosure__Group_1_0_0__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getGroup_1_0_0()); 
            }
            // InternalXcore.g:14456:2: ( 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:14456:3: rule__XClosure__Group_1_0_0__0
                    {
                    pushFollow(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:14464: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:14468:1: ( rule__XClosure__Group_1_0__1__Impl )
            // InternalXcore.g:14469:2: rule__XClosure__Group_1_0__1__Impl
            {
            pushFollow(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:14475: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:14479:1: ( ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) )
            // InternalXcore.g:14480:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
            {
            // InternalXcore.g:14480:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
            // InternalXcore.g:14481:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getExplicitSyntaxAssignment_1_0_1()); 
            }
            // InternalXcore.g:14482:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
            // InternalXcore.g:14482:3: rule__XClosure__ExplicitSyntaxAssignment_1_0_1
            {
            pushFollow(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:14491: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:14495:1: ( rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 )
            // InternalXcore.g:14496:2: rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1
            {
            pushFollow(FOLLOW_38);
            rule__XClosure__Group_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:14503: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:14507:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) )
            // InternalXcore.g:14508:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
            {
            // InternalXcore.g:14508:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
            // InternalXcore.g:14509:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_0()); 
            }
            // InternalXcore.g:14510:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
            // InternalXcore.g:14510:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0
            {
            pushFollow(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:14518: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:14522:1: ( rule__XClosure__Group_1_0_0__1__Impl )
            // InternalXcore.g:14523:2: rule__XClosure__Group_1_0_0__1__Impl
            {
            pushFollow(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:14529: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:14533:1: ( ( ( rule__XClosure__Group_1_0_0_1__0 )* ) )
            // InternalXcore.g:14534:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
            {
            // InternalXcore.g:14534:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
            // InternalXcore.g:14535:2: ( rule__XClosure__Group_1_0_0_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getGroup_1_0_0_1()); 
            }
            // InternalXcore.g:14536:2: ( 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:14536:3: rule__XClosure__Group_1_0_0_1__0
            	    {
            	    pushFollow(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:14545: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:14549:1: ( rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 )
            // InternalXcore.g:14550:2: rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1
            {
            pushFollow(FOLLOW_22);
            rule__XClosure__Group_1_0_0_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:14557: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:14561:1: ( ( ',' ) )
            // InternalXcore.g:14562:1: ( ',' )
            {
            // InternalXcore.g:14562:1: ( ',' )
            // InternalXcore.g:14563:2: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0()); 
            }
            match(input,87,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:14572: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:14576:1: ( rule__XClosure__Group_1_0_0_1__1__Impl )
            // InternalXcore.g:14577:2: rule__XClosure__Group_1_0_0_1__1__Impl
            {
            pushFollow(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:14583: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:14587:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) )
            // InternalXcore.g:14588:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
            {
            // InternalXcore.g:14588:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
            // InternalXcore.g:14589:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_1_1()); 
            }
            // InternalXcore.g:14590:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
            // InternalXcore.g:14590:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1
            {
            pushFollow(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:14599: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:14603:1: ( rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 )
            // InternalXcore.g:14604:2: rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1
            {
            pushFollow(FOLLOW_105);
            rule__XExpressionInClosure__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:14611:1: rule__XExpressionInClosure__Group__0__Impl : ( () ) ;
    public final void rule__XExpressionInClosure__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:14615:1: ( ( () ) )
            // InternalXcore.g:14616:1: ( () )
            {
            // InternalXcore.g:14616:1: ( () )
            // InternalXcore.g:14617:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0()); 
            }
            // InternalXcore.g:14618:2: ()
            // InternalXcore.g:14618:3: 
            {
            }

            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:14626: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:14630:1: ( rule__XExpressionInClosure__Group__1__Impl )
            // InternalXcore.g:14631:2: rule__XExpressionInClosure__Group__1__Impl
            {
            pushFollow(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:14637: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:14641:1: ( ( ( rule__XExpressionInClosure__Group_1__0 )* ) )
            // InternalXcore.g:14642:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
            {
            // InternalXcore.g:14642:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
            // InternalXcore.g:14643:2: ( rule__XExpressionInClosure__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXExpressionInClosureAccess().getGroup_1()); 
            }
            // InternalXcore.g:14644:2: ( 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:14644:3: rule__XExpressionInClosure__Group_1__0
            	    {
            	    pushFollow(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:14653: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:14657:1: ( rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 )
            // InternalXcore.g:14658:2: rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1
            {
            pushFollow(FOLLOW_65);
            rule__XExpressionInClosure__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:14665: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:14669:1: ( ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) )
            // InternalXcore.g:14670:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
            {
            // InternalXcore.g:14670:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
            // InternalXcore.g:14671:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXExpressionInClosureAccess().getExpressionsAssignment_1_0()); 
            }
            // InternalXcore.g:14672:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
            // InternalXcore.g:14672:3: rule__XExpressionInClosure__ExpressionsAssignment_1_0
            {
            pushFollow(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:14680: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:14684:1: ( rule__XExpressionInClosure__Group_1__1__Impl )
            // InternalXcore.g:14685:2: rule__XExpressionInClosure__Group_1__1__Impl
            {
            pushFollow(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:14691:1: rule__XExpressionInClosure__Group_1__1__Impl : ( ( ';' )? ) ;
    public final void rule__XExpressionInClosure__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:14695:1: ( ( ( ';' )? ) )
            // InternalXcore.g:14696:1: ( ( ';' )? )
            {
            // InternalXcore.g:14696:1: ( ( ';' )? )
            // InternalXcore.g:14697:2: ( ';' )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1()); 
            }
            // InternalXcore.g:14698:2: ( ';' )?
            int alt145=2;
            int LA145_0 = input.LA(1);

            if ( (LA145_0==94) ) {
                alt145=1;
            }
            switch (alt145) {
                case 1 :
                    // InternalXcore.g:14698:3: ';'
                    {
                    match(input,94,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:14707: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:14711:1: ( rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 )
            // InternalXcore.g:14712:2: rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1
            {
            pushFollow(FOLLOW_72);
            rule__XShortClosure__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:14719: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:14723:1: ( ( ( rule__XShortClosure__Group_0__0 ) ) )
            // InternalXcore.g:14724:1: ( ( rule__XShortClosure__Group_0__0 ) )
            {
            // InternalXcore.g:14724:1: ( ( rule__XShortClosure__Group_0__0 ) )
            // InternalXcore.g:14725:2: ( rule__XShortClosure__Group_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getGroup_0()); 
            }
            // InternalXcore.g:14726:2: ( rule__XShortClosure__Group_0__0 )
            // InternalXcore.g:14726:3: rule__XShortClosure__Group_0__0
            {
            pushFollow(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:14734: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:14738:1: ( rule__XShortClosure__Group__1__Impl )
            // InternalXcore.g:14739:2: rule__XShortClosure__Group__1__Impl
            {
            pushFollow(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:14745: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:14749:1: ( ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) )
            // InternalXcore.g:14750:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
            {
            // InternalXcore.g:14750:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
            // InternalXcore.g:14751:2: ( rule__XShortClosure__ExpressionAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getExpressionAssignment_1()); 
            }
            // InternalXcore.g:14752:2: ( rule__XShortClosure__ExpressionAssignment_1 )
            // InternalXcore.g:14752:3: rule__XShortClosure__ExpressionAssignment_1
            {
            pushFollow(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:14761: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:14765:1: ( rule__XShortClosure__Group_0__0__Impl )
            // InternalXcore.g:14766:2: rule__XShortClosure__Group_0__0__Impl
            {
            pushFollow(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:14772: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:14776:1: ( ( ( rule__XShortClosure__Group_0_0__0 ) ) )
            // InternalXcore.g:14777:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
            {
            // InternalXcore.g:14777:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
            // InternalXcore.g:14778:2: ( rule__XShortClosure__Group_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getGroup_0_0()); 
            }
            // InternalXcore.g:14779:2: ( rule__XShortClosure__Group_0_0__0 )
            // InternalXcore.g:14779:3: rule__XShortClosure__Group_0_0__0
            {
            pushFollow(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:14788: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:14792:1: ( rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 )
            // InternalXcore.g:14793:2: rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1
            {
            pushFollow(FOLLOW_107);
            rule__XShortClosure__Group_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:14800: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:14804:1: ( ( () ) )
            // InternalXcore.g:14805:1: ( () )
            {
            // InternalXcore.g:14805:1: ( () )
            // InternalXcore.g:14806:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0()); 
            }
            // InternalXcore.g:14807:2: ()
            // InternalXcore.g:14807:3: 
            {
            }

            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:14815: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:14819:1: ( rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 )
            // InternalXcore.g:14820:2: rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2
            {
            pushFollow(FOLLOW_107);
            rule__XShortClosure__Group_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:14827: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:14831:1: ( ( ( rule__XShortClosure__Group_0_0_1__0 )? ) )
            // InternalXcore.g:14832:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
            {
            // InternalXcore.g:14832:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
            // InternalXcore.g:14833:2: ( rule__XShortClosure__Group_0_0_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1()); 
            }
            // InternalXcore.g:14834:2: ( 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:14834:3: rule__XShortClosure__Group_0_0_1__0
                    {
                    pushFollow(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:14842: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:14846:1: ( rule__XShortClosure__Group_0_0__2__Impl )
            // InternalXcore.g:14847:2: rule__XShortClosure__Group_0_0__2__Impl
            {
            pushFollow(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:14853: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:14857:1: ( ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) )
            // InternalXcore.g:14858:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
            {
            // InternalXcore.g:14858:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
            // InternalXcore.g:14859:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxAssignment_0_0_2()); 
            }
            // InternalXcore.g:14860:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
            // InternalXcore.g:14860:3: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2
            {
            pushFollow(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:14869: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:14873:1: ( rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 )
            // InternalXcore.g:14874:2: rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1
            {
            pushFollow(FOLLOW_38);
            rule__XShortClosure__Group_0_0_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:14881: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:14885:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) )
            // InternalXcore.g:14886:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
            {
            // InternalXcore.g:14886:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
            // InternalXcore.g:14887:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_0()); 
            }
            // InternalXcore.g:14888:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
            // InternalXcore.g:14888:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0
            {
            pushFollow(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:14896: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:14900:1: ( rule__XShortClosure__Group_0_0_1__1__Impl )
            // InternalXcore.g:14901:2: rule__XShortClosure__Group_0_0_1__1__Impl
            {
            pushFollow(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:14907: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:14911:1: ( ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) )
            // InternalXcore.g:14912:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
            {
            // InternalXcore.g:14912:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
            // InternalXcore.g:14913:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1_1()); 
            }
            // InternalXcore.g:14914:2: ( 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:14914:3: rule__XShortClosure__Group_0_0_1_1__0
            	    {
            	    pushFollow(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:14923: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:14927:1: ( rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 )
            // InternalXcore.g:14928:2: rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1
            {
            pushFollow(FOLLOW_22);
            rule__XShortClosure__Group_0_0_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:14935: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:14939:1: ( ( ',' ) )
            // InternalXcore.g:14940:1: ( ',' )
            {
            // InternalXcore.g:14940:1: ( ',' )
            // InternalXcore.g:14941:2: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0()); 
            }
            match(input,87,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:14950: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:14954:1: ( rule__XShortClosure__Group_0_0_1_1__1__Impl )
            // InternalXcore.g:14955:2: rule__XShortClosure__Group_0_0_1_1__1__Impl
            {
            pushFollow(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:14961: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:14965:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) )
            // InternalXcore.g:14966:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
            {
            // InternalXcore.g:14966:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
            // InternalXcore.g:14967:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_1_1()); 
            }
            // InternalXcore.g:14968:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
            // InternalXcore.g:14968:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1
            {
            pushFollow(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:14977: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:14981:1: ( rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 )
            // InternalXcore.g:14982:2: rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1
            {
            pushFollow(FOLLOW_72);
            rule__XParenthesizedExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:14989:1: rule__XParenthesizedExpression__Group__0__Impl : ( '(' ) ;
    public final void rule__XParenthesizedExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:14993:1: ( ( '(' ) )
            // InternalXcore.g:14994:1: ( '(' )
            {
            // InternalXcore.g:14994:1: ( '(' )
            // InternalXcore.g:14995:2: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0()); 
            }
            match(input,85,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:15004: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:15008:1: ( rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 )
            // InternalXcore.g:15009:2: rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2
            {
            pushFollow(FOLLOW_108);
            rule__XParenthesizedExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15016:1: rule__XParenthesizedExpression__Group__1__Impl : ( ruleXExpression ) ;
    public final void rule__XParenthesizedExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:15020:1: ( ( ruleXExpression ) )
            // InternalXcore.g:15021:1: ( ruleXExpression )
            {
            // InternalXcore.g:15021:1: ( ruleXExpression )
            // InternalXcore.g:15022:2: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1()); 
            }
            pushFollow(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:15031: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:15035:1: ( rule__XParenthesizedExpression__Group__2__Impl )
            // InternalXcore.g:15036:2: rule__XParenthesizedExpression__Group__2__Impl
            {
            pushFollow(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:15042:1: rule__XParenthesizedExpression__Group__2__Impl : ( ')' ) ;
    public final void rule__XParenthesizedExpression__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:15046:1: ( ( ')' ) )
            // InternalXcore.g:15047:1: ( ')' )
            {
            // InternalXcore.g:15047:1: ( ')' )
            // InternalXcore.g:15048:2: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2()); 
            }
            match(input,86,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:15058: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:15062:1: ( rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 )
            // InternalXcore.g:15063:2: rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1
            {
            pushFollow(FOLLOW_109);
            rule__XIfExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15070:1: rule__XIfExpression__Group__0__Impl : ( () ) ;
    public final void rule__XIfExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:15074:1: ( ( () ) )
            // InternalXcore.g:15075:1: ( () )
            {
            // InternalXcore.g:15075:1: ( () )
            // InternalXcore.g:15076:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0()); 
            }
            // InternalXcore.g:15077:2: ()
            // InternalXcore.g:15077:3: 
            {
            }

            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:15085: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:15089:1: ( rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 )
            // InternalXcore.g:15090:2: rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2
            {
            pushFollow(FOLLOW_12);
            rule__XIfExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15097:1: rule__XIfExpression__Group__1__Impl : ( 'if' ) ;
    public final void rule__XIfExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:15101:1: ( ( 'if' ) )
            // InternalXcore.g:15102:1: ( 'if' )
            {
            // InternalXcore.g:15102:1: ( 'if' )
            // InternalXcore.g:15103:2: 'if'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getIfKeyword_1()); 
            }
            match(input,97,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:15112: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:15116:1: ( rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 )
            // InternalXcore.g:15117:2: rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3
            {
            pushFollow(FOLLOW_72);
            rule__XIfExpression__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15124:1: rule__XIfExpression__Group__2__Impl : ( '(' ) ;
    public final void rule__XIfExpression__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:15128:1: ( ( '(' ) )
            // InternalXcore.g:15129:1: ( '(' )
            {
            // InternalXcore.g:15129:1: ( '(' )
            // InternalXcore.g:15130:2: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2()); 
            }
            match(input,85,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:15139: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:15143:1: ( rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 )
            // InternalXcore.g:15144:2: rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4
            {
            pushFollow(FOLLOW_108);
            rule__XIfExpression__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15151: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:15155:1: ( ( ( rule__XIfExpression__IfAssignment_3 ) ) )
            // InternalXcore.g:15156:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
            {
            // InternalXcore.g:15156:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
            // InternalXcore.g:15157:2: ( rule__XIfExpression__IfAssignment_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getIfAssignment_3()); 
            }
            // InternalXcore.g:15158:2: ( rule__XIfExpression__IfAssignment_3 )
            // InternalXcore.g:15158:3: rule__XIfExpression__IfAssignment_3
            {
            pushFollow(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:15166: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:15170:1: ( rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 )
            // InternalXcore.g:15171:2: rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5
            {
            pushFollow(FOLLOW_72);
            rule__XIfExpression__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15178:1: rule__XIfExpression__Group__4__Impl : ( ')' ) ;
    public final void rule__XIfExpression__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:15182:1: ( ( ')' ) )
            // InternalXcore.g:15183:1: ( ')' )
            {
            // InternalXcore.g:15183:1: ( ')' )
            // InternalXcore.g:15184:2: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4()); 
            }
            match(input,86,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:15193: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:15197:1: ( rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 )
            // InternalXcore.g:15198:2: rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6
            {
            pushFollow(FOLLOW_110);
            rule__XIfExpression__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15205: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:15209:1: ( ( ( rule__XIfExpression__ThenAssignment_5 ) ) )
            // InternalXcore.g:15210:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
            {
            // InternalXcore.g:15210:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
            // InternalXcore.g:15211:2: ( rule__XIfExpression__ThenAssignment_5 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getThenAssignment_5()); 
            }
            // InternalXcore.g:15212:2: ( rule__XIfExpression__ThenAssignment_5 )
            // InternalXcore.g:15212:3: rule__XIfExpression__ThenAssignment_5
            {
            pushFollow(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:15220: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:15224:1: ( rule__XIfExpression__Group__6__Impl )
            // InternalXcore.g:15225:2: rule__XIfExpression__Group__6__Impl
            {
            pushFollow(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:15231: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:15235:1: ( ( ( rule__XIfExpression__Group_6__0 )? ) )
            // InternalXcore.g:15236:1: ( ( rule__XIfExpression__Group_6__0 )? )
            {
            // InternalXcore.g:15236:1: ( ( rule__XIfExpression__Group_6__0 )? )
            // InternalXcore.g:15237:2: ( rule__XIfExpression__Group_6__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getGroup_6()); 
            }
            // InternalXcore.g:15238:2: ( 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:15238:3: rule__XIfExpression__Group_6__0
                    {
                    pushFollow(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:15247: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:15251:1: ( rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 )
            // InternalXcore.g:15252:2: rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1
            {
            pushFollow(FOLLOW_72);
            rule__XIfExpression__Group_6__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15259: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:15263:1: ( ( ( 'else' ) ) )
            // InternalXcore.g:15264:1: ( ( 'else' ) )
            {
            // InternalXcore.g:15264:1: ( ( 'else' ) )
            // InternalXcore.g:15265:2: ( 'else' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0()); 
            }
            // InternalXcore.g:15266:2: ( 'else' )
            // InternalXcore.g:15266:3: 'else'
            {
            match(input,98,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:15274: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:15278:1: ( rule__XIfExpression__Group_6__1__Impl )
            // InternalXcore.g:15279:2: rule__XIfExpression__Group_6__1__Impl
            {
            pushFollow(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:15285: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:15289:1: ( ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) )
            // InternalXcore.g:15290:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
            {
            // InternalXcore.g:15290:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
            // InternalXcore.g:15291:2: ( rule__XIfExpression__ElseAssignment_6_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getElseAssignment_6_1()); 
            }
            // InternalXcore.g:15292:2: ( rule__XIfExpression__ElseAssignment_6_1 )
            // InternalXcore.g:15292:3: rule__XIfExpression__ElseAssignment_6_1
            {
            pushFollow(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:15301: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:15305:1: ( rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 )
            // InternalXcore.g:15306:2: rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1
            {
            pushFollow(FOLLOW_111);
            rule__XSwitchExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15313:1: rule__XSwitchExpression__Group__0__Impl : ( () ) ;
    public final void rule__XSwitchExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:15317:1: ( ( () ) )
            // InternalXcore.g:15318:1: ( () )
            {
            // InternalXcore.g:15318:1: ( () )
            // InternalXcore.g:15319:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0()); 
            }
            // InternalXcore.g:15320:2: ()
            // InternalXcore.g:15320:3: 
            {
            }

            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:15328: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:15332:1: ( rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 )
            // InternalXcore.g:15333:2: rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2
            {
            pushFollow(FOLLOW_112);
            rule__XSwitchExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15340:1: rule__XSwitchExpression__Group__1__Impl : ( 'switch' ) ;
    public final void rule__XSwitchExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:15344:1: ( ( 'switch' ) )
            // InternalXcore.g:15345:1: ( 'switch' )
            {
            // InternalXcore.g:15345:1: ( 'switch' )
            // InternalXcore.g:15346:2: 'switch'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1()); 
            }
            match(input,99,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:15355: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:15359:1: ( rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 )
            // InternalXcore.g:15360:2: rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3
            {
            pushFollow(FOLLOW_26);
            rule__XSwitchExpression__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15367: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:15371:1: ( ( ( rule__XSwitchExpression__Alternatives_2 ) ) )
            // InternalXcore.g:15372:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
            {
            // InternalXcore.g:15372:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
            // InternalXcore.g:15373:2: ( rule__XSwitchExpression__Alternatives_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getAlternatives_2()); 
            }
            // InternalXcore.g:15374:2: ( rule__XSwitchExpression__Alternatives_2 )
            // InternalXcore.g:15374:3: rule__XSwitchExpression__Alternatives_2
            {
            pushFollow(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:15382: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:15386:1: ( rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 )
            // InternalXcore.g:15387:2: rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4
            {
            pushFollow(FOLLOW_113);
            rule__XSwitchExpression__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15394:1: rule__XSwitchExpression__Group__3__Impl : ( '{' ) ;
    public final void rule__XSwitchExpression__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:15398:1: ( ( '{' ) )
            // InternalXcore.g:15399:1: ( '{' )
            {
            // InternalXcore.g:15399:1: ( '{' )
            // InternalXcore.g:15400:2: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3()); 
            }
            match(input,89,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:15409: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:15413:1: ( rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 )
            // InternalXcore.g:15414:2: rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5
            {
            pushFollow(FOLLOW_113);
            rule__XSwitchExpression__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15421: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:15425:1: ( ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) )
            // InternalXcore.g:15426:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
            {
            // InternalXcore.g:15426:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
            // InternalXcore.g:15427:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4()); 
            }
            // InternalXcore.g:15428:2: ( 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:15428:3: rule__XSwitchExpression__CasesAssignment_4
            	    {
            	    pushFollow(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:15436: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:15440:1: ( rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 )
            // InternalXcore.g:15441:2: rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6
            {
            pushFollow(FOLLOW_113);
            rule__XSwitchExpression__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15448: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:15452:1: ( ( ( rule__XSwitchExpression__Group_5__0 )? ) )
            // InternalXcore.g:15453:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
            {
            // InternalXcore.g:15453:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
            // InternalXcore.g:15454:2: ( rule__XSwitchExpression__Group_5__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getGroup_5()); 
            }
            // InternalXcore.g:15455:2: ( 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:15455:3: rule__XSwitchExpression__Group_5__0
                    {
                    pushFollow(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:15463: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:15467:1: ( rule__XSwitchExpression__Group__6__Impl )
            // InternalXcore.g:15468:2: rule__XSwitchExpression__Group__6__Impl
            {
            pushFollow(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:15474:1: rule__XSwitchExpression__Group__6__Impl : ( '}' ) ;
    public final void rule__XSwitchExpression__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:15478:1: ( ( '}' ) )
            // InternalXcore.g:15479:1: ( '}' )
            {
            // InternalXcore.g:15479:1: ( '}' )
            // InternalXcore.g:15480:2: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6()); 
            }
            match(input,90,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:15490: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:15494:1: ( rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 )
            // InternalXcore.g:15495:2: rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1
            {
            pushFollow(FOLLOW_72);
            rule__XSwitchExpression__Group_2_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15502: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:15506:1: ( ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) )
            // InternalXcore.g:15507:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
            {
            // InternalXcore.g:15507:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
            // InternalXcore.g:15508:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0()); 
            }
            // InternalXcore.g:15509:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
            // InternalXcore.g:15509:3: rule__XSwitchExpression__Group_2_0_0__0
            {
            pushFollow(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:15517: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:15521:1: ( rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 )
            // InternalXcore.g:15522:2: rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2
            {
            pushFollow(FOLLOW_108);
            rule__XSwitchExpression__Group_2_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15529: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:15533:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) )
            // InternalXcore.g:15534:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
            {
            // InternalXcore.g:15534:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
            // InternalXcore.g:15535:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_0_1()); 
            }
            // InternalXcore.g:15536:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
            // InternalXcore.g:15536:3: rule__XSwitchExpression__SwitchAssignment_2_0_1
            {
            pushFollow(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:15544: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:15548:1: ( rule__XSwitchExpression__Group_2_0__2__Impl )
            // InternalXcore.g:15549:2: rule__XSwitchExpression__Group_2_0__2__Impl
            {
            pushFollow(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:15555: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:15559:1: ( ( ')' ) )
            // InternalXcore.g:15560:1: ( ')' )
            {
            // InternalXcore.g:15560:1: ( ')' )
            // InternalXcore.g:15561:2: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2()); 
            }
            match(input,86,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:15571: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:15575:1: ( rule__XSwitchExpression__Group_2_0_0__0__Impl )
            // InternalXcore.g:15576:2: rule__XSwitchExpression__Group_2_0_0__0__Impl
            {
            pushFollow(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:15582: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:15586:1: ( ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) )
            // InternalXcore.g:15587:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
            {
            // InternalXcore.g:15587:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
            // InternalXcore.g:15588:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0_0()); 
            }
            // InternalXcore.g:15589:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
            // InternalXcore.g:15589:3: rule__XSwitchExpression__Group_2_0_0_0__0
            {
            pushFollow(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:15598: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:15602:1: ( rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 )
            // InternalXcore.g:15603:2: rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1
            {
            pushFollow(FOLLOW_22);
            rule__XSwitchExpression__Group_2_0_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15610: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:15614:1: ( ( '(' ) )
            // InternalXcore.g:15615:1: ( '(' )
            {
            // InternalXcore.g:15615:1: ( '(' )
            // InternalXcore.g:15616:2: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0()); 
            }
            match(input,85,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:15625: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:15629:1: ( rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 )
            // InternalXcore.g:15630:2: rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2
            {
            pushFollow(FOLLOW_115);
            rule__XSwitchExpression__Group_2_0_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15637: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:15641:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) )
            // InternalXcore.g:15642:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
            {
            // InternalXcore.g:15642:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
            // InternalXcore.g:15643:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_0_0_0_1()); 
            }
            // InternalXcore.g:15644:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
            // InternalXcore.g:15644:3: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1
            {
            pushFollow(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:15652: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:15656:1: ( rule__XSwitchExpression__Group_2_0_0_0__2__Impl )
            // InternalXcore.g:15657:2: rule__XSwitchExpression__Group_2_0_0_0__2__Impl
            {
            pushFollow(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:15663: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:15667:1: ( ( ':' ) )
            // InternalXcore.g:15668:1: ( ':' )
            {
            // InternalXcore.g:15668:1: ( ':' )
            // InternalXcore.g:15669:2: ':'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2()); 
            }
            match(input,100,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:15679: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:15683:1: ( rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 )
            // InternalXcore.g:15684:2: rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1
            {
            pushFollow(FOLLOW_112);
            rule__XSwitchExpression__Group_2_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15691: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:15695:1: ( ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) )
            // InternalXcore.g:15696:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
            {
            // InternalXcore.g:15696:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
            // InternalXcore.g:15697:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0()); 
            }
            // InternalXcore.g:15698:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
            int alt151=2;
            alt151 = dfa151.predict(input);
            switch (alt151) {
                case 1 :
                    // InternalXcore.g:15698:3: rule__XSwitchExpression__Group_2_1_0__0
                    {
                    pushFollow(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:15706: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:15710:1: ( rule__XSwitchExpression__Group_2_1__1__Impl )
            // InternalXcore.g:15711:2: rule__XSwitchExpression__Group_2_1__1__Impl
            {
            pushFollow(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:15717: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:15721:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) )
            // InternalXcore.g:15722:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
            {
            // InternalXcore.g:15722:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
            // InternalXcore.g:15723:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_1_1()); 
            }
            // InternalXcore.g:15724:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
            // InternalXcore.g:15724:3: rule__XSwitchExpression__SwitchAssignment_2_1_1
            {
            pushFollow(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:15733: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:15737:1: ( rule__XSwitchExpression__Group_2_1_0__0__Impl )
            // InternalXcore.g:15738:2: rule__XSwitchExpression__Group_2_1_0__0__Impl
            {
            pushFollow(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:15744: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:15748:1: ( ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) )
            // InternalXcore.g:15749:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
            {
            // InternalXcore.g:15749:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
            // InternalXcore.g:15750:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0_0()); 
            }
            // InternalXcore.g:15751:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
            // InternalXcore.g:15751:3: rule__XSwitchExpression__Group_2_1_0_0__0
            {
            pushFollow(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:15760: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:15764:1: ( rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 )
            // InternalXcore.g:15765:2: rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1
            {
            pushFollow(FOLLOW_115);
            rule__XSwitchExpression__Group_2_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15772: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:15776:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) )
            // InternalXcore.g:15777:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
            {
            // InternalXcore.g:15777:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
            // InternalXcore.g:15778:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_1_0_0_0()); 
            }
            // InternalXcore.g:15779:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
            // InternalXcore.g:15779:3: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0
            {
            pushFollow(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:15787: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:15791:1: ( rule__XSwitchExpression__Group_2_1_0_0__1__Impl )
            // InternalXcore.g:15792:2: rule__XSwitchExpression__Group_2_1_0_0__1__Impl
            {
            pushFollow(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:15798: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:15802:1: ( ( ':' ) )
            // InternalXcore.g:15803:1: ( ':' )
            {
            // InternalXcore.g:15803:1: ( ':' )
            // InternalXcore.g:15804:2: ':'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1()); 
            }
            match(input,100,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:15814: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:15818:1: ( rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 )
            // InternalXcore.g:15819:2: rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1
            {
            pushFollow(FOLLOW_115);
            rule__XSwitchExpression__Group_5__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15826: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:15830:1: ( ( 'default' ) )
            // InternalXcore.g:15831:1: ( 'default' )
            {
            // InternalXcore.g:15831:1: ( 'default' )
            // InternalXcore.g:15832:2: 'default'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0()); 
            }
            match(input,101,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:15841: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:15845:1: ( rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 )
            // InternalXcore.g:15846:2: rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2
            {
            pushFollow(FOLLOW_72);
            rule__XSwitchExpression__Group_5__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15853:1: rule__XSwitchExpression__Group_5__1__Impl : ( ':' ) ;
    public final void rule__XSwitchExpression__Group_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:15857:1: ( ( ':' ) )
            // InternalXcore.g:15858:1: ( ':' )
            {
            // InternalXcore.g:15858:1: ( ':' )
            // InternalXcore.g:15859:2: ':'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1()); 
            }
            match(input,100,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:15868: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:15872:1: ( rule__XSwitchExpression__Group_5__2__Impl )
            // InternalXcore.g:15873:2: rule__XSwitchExpression__Group_5__2__Impl
            {
            pushFollow(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:15879: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:15883:1: ( ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) )
            // InternalXcore.g:15884:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
            {
            // InternalXcore.g:15884:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
            // InternalXcore.g:15885:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getDefaultAssignment_5_2()); 
            }
            // InternalXcore.g:15886:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
            // InternalXcore.g:15886:3: rule__XSwitchExpression__DefaultAssignment_5_2
            {
            pushFollow(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:15895: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:15899:1: ( rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 )
            // InternalXcore.g:15900:2: rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1
            {
            pushFollow(FOLLOW_116);
            rule__XCasePart__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15907:1: rule__XCasePart__Group__0__Impl : ( () ) ;
    public final void rule__XCasePart__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:15911:1: ( ( () ) )
            // InternalXcore.g:15912:1: ( () )
            {
            // InternalXcore.g:15912:1: ( () )
            // InternalXcore.g:15913:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getXCasePartAction_0()); 
            }
            // InternalXcore.g:15914:2: ()
            // InternalXcore.g:15914:3: 
            {
            }

            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:15922: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:15926:1: ( rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 )
            // InternalXcore.g:15927:2: rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2
            {
            pushFollow(FOLLOW_116);
            rule__XCasePart__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15934: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:15938:1: ( ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) )
            // InternalXcore.g:15939:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
            {
            // InternalXcore.g:15939:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
            // InternalXcore.g:15940:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getTypeGuardAssignment_1()); 
            }
            // InternalXcore.g:15941:2: ( 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:15941:3: rule__XCasePart__TypeGuardAssignment_1
                    {
                    pushFollow(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:15949: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:15953:1: ( rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 )
            // InternalXcore.g:15954:2: rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3
            {
            pushFollow(FOLLOW_116);
            rule__XCasePart__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:15961: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:15965:1: ( ( ( rule__XCasePart__Group_2__0 )? ) )
            // InternalXcore.g:15966:1: ( ( rule__XCasePart__Group_2__0 )? )
            {
            // InternalXcore.g:15966:1: ( ( rule__XCasePart__Group_2__0 )? )
            // InternalXcore.g:15967:2: ( rule__XCasePart__Group_2__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getGroup_2()); 
            }
            // InternalXcore.g:15968:2: ( 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:15968:3: rule__XCasePart__Group_2__0
                    {
                    pushFollow(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:15976: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:15980:1: ( rule__XCasePart__Group__3__Impl )
            // InternalXcore.g:15981:2: rule__XCasePart__Group__3__Impl
            {
            pushFollow(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:15987: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:15991:1: ( ( ( rule__XCasePart__Alternatives_3 ) ) )
            // InternalXcore.g:15992:1: ( ( rule__XCasePart__Alternatives_3 ) )
            {
            // InternalXcore.g:15992:1: ( ( rule__XCasePart__Alternatives_3 ) )
            // InternalXcore.g:15993:2: ( rule__XCasePart__Alternatives_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getAlternatives_3()); 
            }
            // InternalXcore.g:15994:2: ( rule__XCasePart__Alternatives_3 )
            // InternalXcore.g:15994:3: rule__XCasePart__Alternatives_3
            {
            pushFollow(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:16003: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:16007:1: ( rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 )
            // InternalXcore.g:16008:2: rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1
            {
            pushFollow(FOLLOW_72);
            rule__XCasePart__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16015: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:16019:1: ( ( 'case' ) )
            // InternalXcore.g:16020:1: ( 'case' )
            {
            // InternalXcore.g:16020:1: ( 'case' )
            // InternalXcore.g:16021:2: 'case'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getCaseKeyword_2_0()); 
            }
            match(input,102,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:16030: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:16034:1: ( rule__XCasePart__Group_2__1__Impl )
            // InternalXcore.g:16035:2: rule__XCasePart__Group_2__1__Impl
            {
            pushFollow(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:16041: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:16045:1: ( ( ( rule__XCasePart__CaseAssignment_2_1 ) ) )
            // InternalXcore.g:16046:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
            {
            // InternalXcore.g:16046:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
            // InternalXcore.g:16047:2: ( rule__XCasePart__CaseAssignment_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getCaseAssignment_2_1()); 
            }
            // InternalXcore.g:16048:2: ( rule__XCasePart__CaseAssignment_2_1 )
            // InternalXcore.g:16048:3: rule__XCasePart__CaseAssignment_2_1
            {
            pushFollow(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:16057: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:16061:1: ( rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 )
            // InternalXcore.g:16062:2: rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1
            {
            pushFollow(FOLLOW_72);
            rule__XCasePart__Group_3_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16069: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:16073:1: ( ( ':' ) )
            // InternalXcore.g:16074:1: ( ':' )
            {
            // InternalXcore.g:16074:1: ( ':' )
            // InternalXcore.g:16075:2: ':'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0()); 
            }
            match(input,100,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:16084: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:16088:1: ( rule__XCasePart__Group_3_0__1__Impl )
            // InternalXcore.g:16089:2: rule__XCasePart__Group_3_0__1__Impl
            {
            pushFollow(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:16095: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:16099:1: ( ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) )
            // InternalXcore.g:16100:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
            {
            // InternalXcore.g:16100:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
            // InternalXcore.g:16101:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getThenAssignment_3_0_1()); 
            }
            // InternalXcore.g:16102:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
            // InternalXcore.g:16102:3: rule__XCasePart__ThenAssignment_3_0_1
            {
            pushFollow(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:16111: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:16115:1: ( rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 )
            // InternalXcore.g:16116:2: rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1
            {
            pushFollow(FOLLOW_72);
            rule__XForLoopExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16123: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:16127:1: ( ( ( rule__XForLoopExpression__Group_0__0 ) ) )
            // InternalXcore.g:16128:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
            {
            // InternalXcore.g:16128:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
            // InternalXcore.g:16129:2: ( rule__XForLoopExpression__Group_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getGroup_0()); 
            }
            // InternalXcore.g:16130:2: ( rule__XForLoopExpression__Group_0__0 )
            // InternalXcore.g:16130:3: rule__XForLoopExpression__Group_0__0
            {
            pushFollow(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:16138: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:16142:1: ( rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 )
            // InternalXcore.g:16143:2: rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2
            {
            pushFollow(FOLLOW_108);
            rule__XForLoopExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16150: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:16154:1: ( ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) )
            // InternalXcore.g:16155:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
            {
            // InternalXcore.g:16155:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
            // InternalXcore.g:16156:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getForExpressionAssignment_1()); 
            }
            // InternalXcore.g:16157:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
            // InternalXcore.g:16157:3: rule__XForLoopExpression__ForExpressionAssignment_1
            {
            pushFollow(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:16165: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:16169:1: ( rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 )
            // InternalXcore.g:16170:2: rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3
            {
            pushFollow(FOLLOW_72);
            rule__XForLoopExpression__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16177:1: rule__XForLoopExpression__Group__2__Impl : ( ')' ) ;
    public final void rule__XForLoopExpression__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:16181:1: ( ( ')' ) )
            // InternalXcore.g:16182:1: ( ')' )
            {
            // InternalXcore.g:16182:1: ( ')' )
            // InternalXcore.g:16183:2: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2()); 
            }
            match(input,86,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:16192: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:16196:1: ( rule__XForLoopExpression__Group__3__Impl )
            // InternalXcore.g:16197:2: rule__XForLoopExpression__Group__3__Impl
            {
            pushFollow(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:16203: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:16207:1: ( ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) )
            // InternalXcore.g:16208:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
            {
            // InternalXcore.g:16208:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
            // InternalXcore.g:16209:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionAssignment_3()); 
            }
            // InternalXcore.g:16210:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
            // InternalXcore.g:16210:3: rule__XForLoopExpression__EachExpressionAssignment_3
            {
            pushFollow(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:16219: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:16223:1: ( rule__XForLoopExpression__Group_0__0__Impl )
            // InternalXcore.g:16224:2: rule__XForLoopExpression__Group_0__0__Impl
            {
            pushFollow(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:16230: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:16234:1: ( ( ( rule__XForLoopExpression__Group_0_0__0 ) ) )
            // InternalXcore.g:16235:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
            {
            // InternalXcore.g:16235:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
            // InternalXcore.g:16236:2: ( rule__XForLoopExpression__Group_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getGroup_0_0()); 
            }
            // InternalXcore.g:16237:2: ( rule__XForLoopExpression__Group_0_0__0 )
            // InternalXcore.g:16237:3: rule__XForLoopExpression__Group_0_0__0
            {
            pushFollow(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:16246: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:16250:1: ( rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 )
            // InternalXcore.g:16251:2: rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1
            {
            pushFollow(FOLLOW_117);
            rule__XForLoopExpression__Group_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16258: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:16262:1: ( ( () ) )
            // InternalXcore.g:16263:1: ( () )
            {
            // InternalXcore.g:16263:1: ( () )
            // InternalXcore.g:16264:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0_0_0()); 
            }
            // InternalXcore.g:16265:2: ()
            // InternalXcore.g:16265:3: 
            {
            }

            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:16273: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:16277:1: ( rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 )
            // InternalXcore.g:16278:2: rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2
            {
            pushFollow(FOLLOW_12);
            rule__XForLoopExpression__Group_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16285: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:16289:1: ( ( 'for' ) )
            // InternalXcore.g:16290:1: ( 'for' )
            {
            // InternalXcore.g:16290:1: ( 'for' )
            // InternalXcore.g:16291:2: 'for'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1()); 
            }
            match(input,103,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:16300: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:16304:1: ( rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 )
            // InternalXcore.g:16305:2: rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3
            {
            pushFollow(FOLLOW_22);
            rule__XForLoopExpression__Group_0_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16312: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:16316:1: ( ( '(' ) )
            // InternalXcore.g:16317:1: ( '(' )
            {
            // InternalXcore.g:16317:1: ( '(' )
            // InternalXcore.g:16318:2: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
            }
            match(input,85,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:16327: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:16331:1: ( rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 )
            // InternalXcore.g:16332:2: rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4
            {
            pushFollow(FOLLOW_115);
            rule__XForLoopExpression__Group_0_0__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16339: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:16343:1: ( ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) )
            // InternalXcore.g:16344:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
            {
            // InternalXcore.g:16344:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
            // InternalXcore.g:16345:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamAssignment_0_0_3()); 
            }
            // InternalXcore.g:16346:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
            // InternalXcore.g:16346:3: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3
            {
            pushFollow(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:16354: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:16358:1: ( rule__XForLoopExpression__Group_0_0__4__Impl )
            // InternalXcore.g:16359:2: rule__XForLoopExpression__Group_0_0__4__Impl
            {
            pushFollow(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:16365: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:16369:1: ( ( ':' ) )
            // InternalXcore.g:16370:1: ( ':' )
            {
            // InternalXcore.g:16370:1: ( ':' )
            // InternalXcore.g:16371:2: ':'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4()); 
            }
            match(input,100,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:16381: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:16385:1: ( rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 )
            // InternalXcore.g:16386:2: rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1
            {
            pushFollow(FOLLOW_117);
            rule__XBasicForLoopExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16393:1: rule__XBasicForLoopExpression__Group__0__Impl : ( () ) ;
    public final void rule__XBasicForLoopExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:16397:1: ( ( () ) )
            // InternalXcore.g:16398:1: ( () )
            {
            // InternalXcore.g:16398:1: ( () )
            // InternalXcore.g:16399:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getXBasicForLoopExpressionAction_0()); 
            }
            // InternalXcore.g:16400:2: ()
            // InternalXcore.g:16400:3: 
            {
            }

            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:16408: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:16412:1: ( rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 )
            // InternalXcore.g:16413:2: rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2
            {
            pushFollow(FOLLOW_12);
            rule__XBasicForLoopExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16420:1: rule__XBasicForLoopExpression__Group__1__Impl : ( 'for' ) ;
    public final void rule__XBasicForLoopExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:16424:1: ( ( 'for' ) )
            // InternalXcore.g:16425:1: ( 'for' )
            {
            // InternalXcore.g:16425:1: ( 'for' )
            // InternalXcore.g:16426:2: 'for'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1()); 
            }
            match(input,103,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:16435: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:16439:1: ( rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 )
            // InternalXcore.g:16440:2: rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3
            {
            pushFollow(FOLLOW_118);
            rule__XBasicForLoopExpression__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16447:1: rule__XBasicForLoopExpression__Group__2__Impl : ( '(' ) ;
    public final void rule__XBasicForLoopExpression__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:16451:1: ( ( '(' ) )
            // InternalXcore.g:16452:1: ( '(' )
            {
            // InternalXcore.g:16452:1: ( '(' )
            // InternalXcore.g:16453:2: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2()); 
            }
            match(input,85,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:16462: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:16466:1: ( rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 )
            // InternalXcore.g:16467:2: rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4
            {
            pushFollow(FOLLOW_118);
            rule__XBasicForLoopExpression__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16474: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:16478:1: ( ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) )
            // InternalXcore.g:16479:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
            {
            // InternalXcore.g:16479:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
            // InternalXcore.g:16480:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3()); 
            }
            // InternalXcore.g:16481:2: ( 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:16481:3: rule__XBasicForLoopExpression__Group_3__0
                    {
                    pushFollow(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:16489: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:16493:1: ( rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 )
            // InternalXcore.g:16494:2: rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5
            {
            pushFollow(FOLLOW_118);
            rule__XBasicForLoopExpression__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16501:1: rule__XBasicForLoopExpression__Group__4__Impl : ( ';' ) ;
    public final void rule__XBasicForLoopExpression__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:16505:1: ( ( ';' ) )
            // InternalXcore.g:16506:1: ( ';' )
            {
            // InternalXcore.g:16506:1: ( ';' )
            // InternalXcore.g:16507:2: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4()); 
            }
            match(input,94,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:16516: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:16520:1: ( rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 )
            // InternalXcore.g:16521:2: rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6
            {
            pushFollow(FOLLOW_118);
            rule__XBasicForLoopExpression__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16528: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:16532:1: ( ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) )
            // InternalXcore.g:16533:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
            {
            // InternalXcore.g:16533:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
            // InternalXcore.g:16534:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionAssignment_5()); 
            }
            // InternalXcore.g:16535:2: ( 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:16535:3: rule__XBasicForLoopExpression__ExpressionAssignment_5
                    {
                    pushFollow(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:16543: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:16547:1: ( rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 )
            // InternalXcore.g:16548:2: rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7
            {
            pushFollow(FOLLOW_119);
            rule__XBasicForLoopExpression__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16555:1: rule__XBasicForLoopExpression__Group__6__Impl : ( ';' ) ;
    public final void rule__XBasicForLoopExpression__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:16559:1: ( ( ';' ) )
            // InternalXcore.g:16560:1: ( ';' )
            {
            // InternalXcore.g:16560:1: ( ';' )
            // InternalXcore.g:16561:2: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6()); 
            }
            match(input,94,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:16570: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:16574:1: ( rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 )
            // InternalXcore.g:16575:2: rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8
            {
            pushFollow(FOLLOW_119);
            rule__XBasicForLoopExpression__Group__7__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16582: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:16586:1: ( ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) )
            // InternalXcore.g:16587:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
            {
            // InternalXcore.g:16587:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
            // InternalXcore.g:16588:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7()); 
            }
            // InternalXcore.g:16589:2: ( 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:16589:3: rule__XBasicForLoopExpression__Group_7__0
                    {
                    pushFollow(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:16597: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:16601:1: ( rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 )
            // InternalXcore.g:16602:2: rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9
            {
            pushFollow(FOLLOW_72);
            rule__XBasicForLoopExpression__Group__8__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16609:1: rule__XBasicForLoopExpression__Group__8__Impl : ( ')' ) ;
    public final void rule__XBasicForLoopExpression__Group__8__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:16613:1: ( ( ')' ) )
            // InternalXcore.g:16614:1: ( ')' )
            {
            // InternalXcore.g:16614:1: ( ')' )
            // InternalXcore.g:16615:2: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8()); 
            }
            match(input,86,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:16624: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:16628:1: ( rule__XBasicForLoopExpression__Group__9__Impl )
            // InternalXcore.g:16629:2: rule__XBasicForLoopExpression__Group__9__Impl
            {
            pushFollow(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:16635: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:16639:1: ( ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) )
            // InternalXcore.g:16640:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
            {
            // InternalXcore.g:16640:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
            // InternalXcore.g:16641:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionAssignment_9()); 
            }
            // InternalXcore.g:16642:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
            // InternalXcore.g:16642:3: rule__XBasicForLoopExpression__EachExpressionAssignment_9
            {
            pushFollow(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:16651: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:16655:1: ( rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 )
            // InternalXcore.g:16656:2: rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1
            {
            pushFollow(FOLLOW_38);
            rule__XBasicForLoopExpression__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16663: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:16667:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) )
            // InternalXcore.g:16668:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
            {
            // InternalXcore.g:16668:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
            // InternalXcore.g:16669:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_0()); 
            }
            // InternalXcore.g:16670:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
            // InternalXcore.g:16670:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0
            {
            pushFollow(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:16678: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:16682:1: ( rule__XBasicForLoopExpression__Group_3__1__Impl )
            // InternalXcore.g:16683:2: rule__XBasicForLoopExpression__Group_3__1__Impl
            {
            pushFollow(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:16689: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:16693:1: ( ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) )
            // InternalXcore.g:16694:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
            {
            // InternalXcore.g:16694:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
            // InternalXcore.g:16695:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3_1()); 
            }
            // InternalXcore.g:16696:2: ( 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:16696:3: rule__XBasicForLoopExpression__Group_3_1__0
            	    {
            	    pushFollow(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:16705: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:16709:1: ( rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 )
            // InternalXcore.g:16710:2: rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1
            {
            pushFollow(FOLLOW_72);
            rule__XBasicForLoopExpression__Group_3_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16717: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:16721:1: ( ( ',' ) )
            // InternalXcore.g:16722:1: ( ',' )
            {
            // InternalXcore.g:16722:1: ( ',' )
            // InternalXcore.g:16723:2: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0()); 
            }
            match(input,87,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:16732: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:16736:1: ( rule__XBasicForLoopExpression__Group_3_1__1__Impl )
            // InternalXcore.g:16737:2: rule__XBasicForLoopExpression__Group_3_1__1__Impl
            {
            pushFollow(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:16743: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:16747:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) )
            // InternalXcore.g:16748:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
            {
            // InternalXcore.g:16748:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
            // InternalXcore.g:16749:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_1_1()); 
            }
            // InternalXcore.g:16750:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
            // InternalXcore.g:16750:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1
            {
            pushFollow(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:16759: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:16763:1: ( rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 )
            // InternalXcore.g:16764:2: rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1
            {
            pushFollow(FOLLOW_38);
            rule__XBasicForLoopExpression__Group_7__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16771: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:16775:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) )
            // InternalXcore.g:16776:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
            {
            // InternalXcore.g:16776:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
            // InternalXcore.g:16777:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_0()); 
            }
            // InternalXcore.g:16778:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
            // InternalXcore.g:16778:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0
            {
            pushFollow(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:16786: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:16790:1: ( rule__XBasicForLoopExpression__Group_7__1__Impl )
            // InternalXcore.g:16791:2: rule__XBasicForLoopExpression__Group_7__1__Impl
            {
            pushFollow(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:16797: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:16801:1: ( ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) )
            // InternalXcore.g:16802:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
            {
            // InternalXcore.g:16802:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
            // InternalXcore.g:16803:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7_1()); 
            }
            // InternalXcore.g:16804:2: ( 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:16804:3: rule__XBasicForLoopExpression__Group_7_1__0
            	    {
            	    pushFollow(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:16813: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:16817:1: ( rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 )
            // InternalXcore.g:16818:2: rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1
            {
            pushFollow(FOLLOW_72);
            rule__XBasicForLoopExpression__Group_7_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16825: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:16829:1: ( ( ',' ) )
            // InternalXcore.g:16830:1: ( ',' )
            {
            // InternalXcore.g:16830:1: ( ',' )
            // InternalXcore.g:16831:2: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0()); 
            }
            match(input,87,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:16840: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:16844:1: ( rule__XBasicForLoopExpression__Group_7_1__1__Impl )
            // InternalXcore.g:16845:2: rule__XBasicForLoopExpression__Group_7_1__1__Impl
            {
            pushFollow(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:16851: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:16855:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) )
            // InternalXcore.g:16856:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
            {
            // InternalXcore.g:16856:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
            // InternalXcore.g:16857:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_1_1()); 
            }
            // InternalXcore.g:16858:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
            // InternalXcore.g:16858:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1
            {
            pushFollow(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:16867: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:16871:1: ( rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 )
            // InternalXcore.g:16872:2: rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1
            {
            pushFollow(FOLLOW_120);
            rule__XWhileExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16879:1: rule__XWhileExpression__Group__0__Impl : ( () ) ;
    public final void rule__XWhileExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:16883:1: ( ( () ) )
            // InternalXcore.g:16884:1: ( () )
            {
            // InternalXcore.g:16884:1: ( () )
            // InternalXcore.g:16885:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0()); 
            }
            // InternalXcore.g:16886:2: ()
            // InternalXcore.g:16886:3: 
            {
            }

            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:16894: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:16898:1: ( rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 )
            // InternalXcore.g:16899:2: rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2
            {
            pushFollow(FOLLOW_12);
            rule__XWhileExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16906:1: rule__XWhileExpression__Group__1__Impl : ( 'while' ) ;
    public final void rule__XWhileExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:16910:1: ( ( 'while' ) )
            // InternalXcore.g:16911:1: ( 'while' )
            {
            // InternalXcore.g:16911:1: ( 'while' )
            // InternalXcore.g:16912:2: 'while'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1()); 
            }
            match(input,104,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:16921: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:16925:1: ( rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 )
            // InternalXcore.g:16926:2: rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3
            {
            pushFollow(FOLLOW_72);
            rule__XWhileExpression__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16933:1: rule__XWhileExpression__Group__2__Impl : ( '(' ) ;
    public final void rule__XWhileExpression__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:16937:1: ( ( '(' ) )
            // InternalXcore.g:16938:1: ( '(' )
            {
            // InternalXcore.g:16938:1: ( '(' )
            // InternalXcore.g:16939:2: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2()); 
            }
            match(input,85,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:16948: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:16952:1: ( rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 )
            // InternalXcore.g:16953:2: rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4
            {
            pushFollow(FOLLOW_108);
            rule__XWhileExpression__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16960: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:16964:1: ( ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) )
            // InternalXcore.g:16965:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
            {
            // InternalXcore.g:16965:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
            // InternalXcore.g:16966:2: ( rule__XWhileExpression__PredicateAssignment_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXWhileExpressionAccess().getPredicateAssignment_3()); 
            }
            // InternalXcore.g:16967:2: ( rule__XWhileExpression__PredicateAssignment_3 )
            // InternalXcore.g:16967:3: rule__XWhileExpression__PredicateAssignment_3
            {
            pushFollow(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:16975: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:16979:1: ( rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 )
            // InternalXcore.g:16980:2: rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5
            {
            pushFollow(FOLLOW_72);
            rule__XWhileExpression__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:16987:1: rule__XWhileExpression__Group__4__Impl : ( ')' ) ;
    public final void rule__XWhileExpression__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:16991:1: ( ( ')' ) )
            // InternalXcore.g:16992:1: ( ')' )
            {
            // InternalXcore.g:16992:1: ( ')' )
            // InternalXcore.g:16993:2: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4()); 
            }
            match(input,86,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:17002: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:17006:1: ( rule__XWhileExpression__Group__5__Impl )
            // InternalXcore.g:17007:2: rule__XWhileExpression__Group__5__Impl
            {
            pushFollow(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:17013: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:17017:1: ( ( ( rule__XWhileExpression__BodyAssignment_5 ) ) )
            // InternalXcore.g:17018:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
            {
            // InternalXcore.g:17018:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
            // InternalXcore.g:17019:2: ( rule__XWhileExpression__BodyAssignment_5 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXWhileExpressionAccess().getBodyAssignment_5()); 
            }
            // InternalXcore.g:17020:2: ( rule__XWhileExpression__BodyAssignment_5 )
            // InternalXcore.g:17020:3: rule__XWhileExpression__BodyAssignment_5
            {
            pushFollow(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:17029: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:17033:1: ( rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 )
            // InternalXcore.g:17034:2: rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1
            {
            pushFollow(FOLLOW_121);
            rule__XDoWhileExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:17041:1: rule__XDoWhileExpression__Group__0__Impl : ( () ) ;
    public final void rule__XDoWhileExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:17045:1: ( ( () ) )
            // InternalXcore.g:17046:1: ( () )
            {
            // InternalXcore.g:17046:1: ( () )
            // InternalXcore.g:17047:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0()); 
            }
            // InternalXcore.g:17048:2: ()
            // InternalXcore.g:17048:3: 
            {
            }

            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:17056: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:17060:1: ( rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 )
            // InternalXcore.g:17061:2: rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2
            {
            pushFollow(FOLLOW_72);
            rule__XDoWhileExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:17068:1: rule__XDoWhileExpression__Group__1__Impl : ( 'do' ) ;
    public final void rule__XDoWhileExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:17072:1: ( ( 'do' ) )
            // InternalXcore.g:17073:1: ( 'do' )
            {
            // InternalXcore.g:17073:1: ( 'do' )
            // InternalXcore.g:17074:2: 'do'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1()); 
            }
            match(input,105,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:17083: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:17087:1: ( rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 )
            // InternalXcore.g:17088:2: rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3
            {
            pushFollow(FOLLOW_120);
            rule__XDoWhileExpression__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:17095: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:17099:1: ( ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) )
            // InternalXcore.g:17100:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
            {
            // InternalXcore.g:17100:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
            // InternalXcore.g:17101:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDoWhileExpressionAccess().getBodyAssignment_2()); 
            }
            // InternalXcore.g:17102:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
            // InternalXcore.g:17102:3: rule__XDoWhileExpression__BodyAssignment_2
            {
            pushFollow(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:17110: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:17114:1: ( rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 )
            // InternalXcore.g:17115:2: rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4
            {
            pushFollow(FOLLOW_12);
            rule__XDoWhileExpression__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:17122:1: rule__XDoWhileExpression__Group__3__Impl : ( 'while' ) ;
    public final void rule__XDoWhileExpression__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:17126:1: ( ( 'while' ) )
            // InternalXcore.g:17127:1: ( 'while' )
            {
            // InternalXcore.g:17127:1: ( 'while' )
            // InternalXcore.g:17128:2: 'while'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3()); 
            }
            match(input,104,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:17137: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:17141:1: ( rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 )
            // InternalXcore.g:17142:2: rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5
            {
            pushFollow(FOLLOW_72);
            rule__XDoWhileExpression__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:17149:1: rule__XDoWhileExpression__Group__4__Impl : ( '(' ) ;
    public final void rule__XDoWhileExpression__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:17153:1: ( ( '(' ) )
            // InternalXcore.g:17154:1: ( '(' )
            {
            // InternalXcore.g:17154:1: ( '(' )
            // InternalXcore.g:17155:2: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4()); 
            }
            match(input,85,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:17164: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:17168:1: ( rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 )
            // InternalXcore.g:17169:2: rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6
            {
            pushFollow(FOLLOW_108);
            rule__XDoWhileExpression__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:17176: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:17180:1: ( ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) )
            // InternalXcore.g:17181:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
            {
            // InternalXcore.g:17181:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
            // InternalXcore.g:17182:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDoWhileExpressionAccess().getPredicateAssignment_5()); 
            }
            // InternalXcore.g:17183:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
            // InternalXcore.g:17183:3: rule__XDoWhileExpression__PredicateAssignment_5
            {
            pushFollow(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:17191: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:17195:1: ( rule__XDoWhileExpression__Group__6__Impl )
            // InternalXcore.g:17196:2: rule__XDoWhileExpression__Group__6__Impl
            {
            pushFollow(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:17202:1: rule__XDoWhileExpression__Group__6__Impl : ( ')' ) ;
    public final void rule__XDoWhileExpression__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:17206:1: ( ( ')' ) )
            // InternalXcore.g:17207:1: ( ')' )
            {
            // InternalXcore.g:17207:1: ( ')' )
            // InternalXcore.g:17208:2: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6()); 
            }
            match(input,86,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:17218: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:17222:1: ( rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 )
            // InternalXcore.g:17223:2: rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1
            {
            pushFollow(FOLLOW_122);
            rule__XVariableDeclaration__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:17230:1: rule__XVariableDeclaration__Group__0__Impl : ( () ) ;
    public final void rule__XVariableDeclaration__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:17234:1: ( ( () ) )
            // InternalXcore.g:17235:1: ( () )
            {
            // InternalXcore.g:17235:1: ( () )
            // InternalXcore.g:17236:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0()); 
            }
            // InternalXcore.g:17237:2: ()
            // InternalXcore.g:17237:3: 
            {
            }

            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:17245: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:17249:1: ( rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 )
            // InternalXcore.g:17250:2: rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2
            {
            pushFollow(FOLLOW_22);
            rule__XVariableDeclaration__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:17257: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:17261:1: ( ( ( rule__XVariableDeclaration__Alternatives_1 ) ) )
            // InternalXcore.g:17262:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
            {
            // InternalXcore.g:17262:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
            // InternalXcore.g:17263:2: ( rule__XVariableDeclaration__Alternatives_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_1()); 
            }
            // InternalXcore.g:17264:2: ( rule__XVariableDeclaration__Alternatives_1 )
            // InternalXcore.g:17264:3: rule__XVariableDeclaration__Alternatives_1
            {
            pushFollow(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:17272: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:17276:1: ( rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 )
            // InternalXcore.g:17277:2: rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3
            {
            pushFollow(FOLLOW_15);
            rule__XVariableDeclaration__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:17284: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:17288:1: ( ( ( rule__XVariableDeclaration__Alternatives_2 ) ) )
            // InternalXcore.g:17289:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
            {
            // InternalXcore.g:17289:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
            // InternalXcore.g:17290:2: ( rule__XVariableDeclaration__Alternatives_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_2()); 
            }
            // InternalXcore.g:17291:2: ( rule__XVariableDeclaration__Alternatives_2 )
            // InternalXcore.g:17291:3: rule__XVariableDeclaration__Alternatives_2
            {
            pushFollow(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:17299: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:17303:1: ( rule__XVariableDeclaration__Group__3__Impl )
            // InternalXcore.g:17304:2: rule__XVariableDeclaration__Group__3__Impl
            {
            pushFollow(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:17310: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:17314:1: ( ( ( rule__XVariableDeclaration__Group_3__0 )? ) )
            // InternalXcore.g:17315:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
            {
            // InternalXcore.g:17315:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
            // InternalXcore.g:17316:2: ( rule__XVariableDeclaration__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getGroup_3()); 
            }
            // InternalXcore.g:17317:2: ( 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:17317:3: rule__XVariableDeclaration__Group_3__0
                    {
                    pushFollow(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:17326: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:17330:1: ( rule__XVariableDeclaration__Group_2_0__0__Impl )
            // InternalXcore.g:17331:2: rule__XVariableDeclaration__Group_2_0__0__Impl
            {
            pushFollow(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:17337: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:17341:1: ( ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) )
            // InternalXcore.g:17342:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
            {
            // InternalXcore.g:17342:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
            // InternalXcore.g:17343:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0_0()); 
            }
            // InternalXcore.g:17344:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
            // InternalXcore.g:17344:3: rule__XVariableDeclaration__Group_2_0_0__0
            {
            pushFollow(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:17353: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:17357:1: ( rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 )
            // InternalXcore.g:17358:2: rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1
            {
            pushFollow(FOLLOW_6);
            rule__XVariableDeclaration__Group_2_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:17365: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:17369:1: ( ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) )
            // InternalXcore.g:17370:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
            {
            // InternalXcore.g:17370:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
            // InternalXcore.g:17371:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getTypeAssignment_2_0_0_0()); 
            }
            // InternalXcore.g:17372:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
            // InternalXcore.g:17372:3: rule__XVariableDeclaration__TypeAssignment_2_0_0_0
            {
            pushFollow(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:17380: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:17384:1: ( rule__XVariableDeclaration__Group_2_0_0__1__Impl )
            // InternalXcore.g:17385:2: rule__XVariableDeclaration__Group_2_0_0__1__Impl
            {
            pushFollow(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:17391: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:17395:1: ( ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) )
            // InternalXcore.g:17396:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
            {
            // InternalXcore.g:17396:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
            // InternalXcore.g:17397:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_0_0_1()); 
            }
            // InternalXcore.g:17398:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
            // InternalXcore.g:17398:3: rule__XVariableDeclaration__NameAssignment_2_0_0_1
            {
            pushFollow(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:17407: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:17411:1: ( rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 )
            // InternalXcore.g:17412:2: rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1
            {
            pushFollow(FOLLOW_72);
            rule__XVariableDeclaration__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:17419:1: rule__XVariableDeclaration__Group_3__0__Impl : ( '=' ) ;
    public final void rule__XVariableDeclaration__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:17423:1: ( ( '=' ) )
            // InternalXcore.g:17424:1: ( '=' )
            {
            // InternalXcore.g:17424:1: ( '=' )
            // InternalXcore.g:17425:2: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0()); 
            }
            match(input,13,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:17434: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:17438:1: ( rule__XVariableDeclaration__Group_3__1__Impl )
            // InternalXcore.g:17439:2: rule__XVariableDeclaration__Group_3__1__Impl
            {
            pushFollow(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:17445: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:17449:1: ( ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) )
            // InternalXcore.g:17450:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
            {
            // InternalXcore.g:17450:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
            // InternalXcore.g:17451:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getRightAssignment_3_1()); 
            }
            // InternalXcore.g:17452:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
            // InternalXcore.g:17452:3: rule__XVariableDeclaration__RightAssignment_3_1
            {
            pushFollow(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:17461: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:17465:1: ( rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 )
            // InternalXcore.g:17466:2: rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1
            {
            pushFollow(FOLLOW_22);
            rule__JvmFormalParameter__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:17473: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:17477:1: ( ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) )
            // InternalXcore.g:17478:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
            {
            // InternalXcore.g:17478:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
            // InternalXcore.g:17479:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeAssignment_0()); 
            }
            // InternalXcore.g:17480:2: ( 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:17480:3: rule__JvmFormalParameter__ParameterTypeAssignment_0
                    {
                    pushFollow(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:17488: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:17492:1: ( rule__JvmFormalParameter__Group__1__Impl )
            // InternalXcore.g:17493:2: rule__JvmFormalParameter__Group__1__Impl
            {
            pushFollow(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:17499: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:17503:1: ( ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) )
            // InternalXcore.g:17504:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
            {
            // InternalXcore.g:17504:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
            // InternalXcore.g:17505:2: ( rule__JvmFormalParameter__NameAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmFormalParameterAccess().getNameAssignment_1()); 
            }
            // InternalXcore.g:17506:2: ( rule__JvmFormalParameter__NameAssignment_1 )
            // InternalXcore.g:17506:3: rule__JvmFormalParameter__NameAssignment_1
            {
            pushFollow(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:17515: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:17519:1: ( rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 )
            // InternalXcore.g:17520:2: rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1
            {
            pushFollow(FOLLOW_6);
            rule__FullJvmFormalParameter__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:17527: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:17531:1: ( ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) )
            // InternalXcore.g:17532:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
            {
            // InternalXcore.g:17532:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
            // InternalXcore.g:17533:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeAssignment_0()); 
            }
            // InternalXcore.g:17534:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
            // InternalXcore.g:17534:3: rule__FullJvmFormalParameter__ParameterTypeAssignment_0
            {
            pushFollow(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:17542: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:17546:1: ( rule__FullJvmFormalParameter__Group__1__Impl )
            // InternalXcore.g:17547:2: rule__FullJvmFormalParameter__Group__1__Impl
            {
            pushFollow(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:17553: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:17557:1: ( ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) )
            // InternalXcore.g:17558:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
            {
            // InternalXcore.g:17558:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
            // InternalXcore.g:17559:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFullJvmFormalParameterAccess().getNameAssignment_1()); 
            }
            // InternalXcore.g:17560:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
            // InternalXcore.g:17560:3: rule__FullJvmFormalParameter__NameAssignment_1
            {
            pushFollow(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:17569: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:17573:1: ( rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 )
            // InternalXcore.g:17574:2: rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1
            {
            pushFollow(FOLLOW_98);
            rule__XFeatureCall__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:17581:1: rule__XFeatureCall__Group__0__Impl : ( () ) ;
    public final void rule__XFeatureCall__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:17585:1: ( ( () ) )
            // InternalXcore.g:17586:1: ( () )
            {
            // InternalXcore.g:17586:1: ( () )
            // InternalXcore.g:17587:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0()); 
            }
            // InternalXcore.g:17588:2: ()
            // InternalXcore.g:17588:3: 
            {
            }

            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:17596: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:17600:1: ( rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 )
            // InternalXcore.g:17601:2: rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2
            {
            pushFollow(FOLLOW_98);
            rule__XFeatureCall__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:17608: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:17612:1: ( ( ( rule__XFeatureCall__Group_1__0 )? ) )
            // InternalXcore.g:17613:1: ( ( rule__XFeatureCall__Group_1__0 )? )
            {
            // InternalXcore.g:17613:1: ( ( rule__XFeatureCall__Group_1__0 )? )
            // InternalXcore.g:17614:2: ( rule__XFeatureCall__Group_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getGroup_1()); 
            }
            // InternalXcore.g:17615:2: ( 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:17615:3: rule__XFeatureCall__Group_1__0
                    {
                    pushFollow(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:17623: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:17627:1: ( rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 )
            // InternalXcore.g:17628:2: rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3
            {
            pushFollow(FOLLOW_99);
            rule__XFeatureCall__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:17635: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:17639:1: ( ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) )
            // InternalXcore.g:17640:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
            {
            // InternalXcore.g:17640:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
            // InternalXcore.g:17641:2: ( rule__XFeatureCall__FeatureAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getFeatureAssignment_2()); 
            }
            // InternalXcore.g:17642:2: ( rule__XFeatureCall__FeatureAssignment_2 )
            // InternalXcore.g:17642:3: rule__XFeatureCall__FeatureAssignment_2
            {
            pushFollow(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:17650: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:17654:1: ( rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 )
            // InternalXcore.g:17655:2: rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4
            {
            pushFollow(FOLLOW_99);
            rule__XFeatureCall__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:17662: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:17666:1: ( ( ( rule__XFeatureCall__Group_3__0 )? ) )
            // InternalXcore.g:17667:1: ( ( rule__XFeatureCall__Group_3__0 )? )
            {
            // InternalXcore.g:17667:1: ( ( rule__XFeatureCall__Group_3__0 )? )
            // InternalXcore.g:17668:2: ( rule__XFeatureCall__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getGroup_3()); 
            }
            // InternalXcore.g:17669:2: ( rule__XFeatureCall__Group_3__0 )?
            int alt162=2;
            alt162 = dfa162.predict(input);
            switch (alt162) {
                case 1 :
                    // InternalXcore.g:17669:3: rule__XFeatureCall__Group_3__0
                    {
                    pushFollow(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:17677: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:17681:1: ( rule__XFeatureCall__Group__4__Impl )
            // InternalXcore.g:17682:2: rule__XFeatureCall__Group__4__Impl
            {
            pushFollow(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:17688: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:17692:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) )
            // InternalXcore.g:17693:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
            {
            // InternalXcore.g:17693:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
            // InternalXcore.g:17694:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_4()); 
            }
            // InternalXcore.g:17695:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
            int alt163=2;
            alt163 = dfa163.predict(input);
            switch (alt163) {
                case 1 :
                    // InternalXcore.g:17695:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
                    {
                    pushFollow(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:17704: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:17708:1: ( rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 )
            // InternalXcore.g:17709:2: rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1
            {
            pushFollow(FOLLOW_100);
            rule__XFeatureCall__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:17716:1: rule__XFeatureCall__Group_1__0__Impl : ( '<' ) ;
    public final void rule__XFeatureCall__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:17720:1: ( ( '<' ) )
            // InternalXcore.g:17721:1: ( '<' )
            {
            // InternalXcore.g:17721:1: ( '<' )
            // InternalXcore.g:17722:2: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0()); 
            }
            match(input,66,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:17731: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:17735:1: ( rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 )
            // InternalXcore.g:17736:2: rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2
            {
            pushFollow(FOLLOW_25);
            rule__XFeatureCall__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:17743: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:17747:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) )
            // InternalXcore.g:17748:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
            {
            // InternalXcore.g:17748:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
            // InternalXcore.g:17749:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_1()); 
            }
            // InternalXcore.g:17750:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
            // InternalXcore.g:17750:3: rule__XFeatureCall__TypeArgumentsAssignment_1_1
            {
            pushFollow(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:17758: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:17762:1: ( rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 )
            // InternalXcore.g:17763:2: rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3
            {
            pushFollow(FOLLOW_25);
            rule__XFeatureCall__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:17770: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:17774:1: ( ( ( rule__XFeatureCall__Group_1_2__0 )* ) )
            // InternalXcore.g:17775:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
            {
            // InternalXcore.g:17775:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
            // InternalXcore.g:17776:2: ( rule__XFeatureCall__Group_1_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getGroup_1_2()); 
            }
            // InternalXcore.g:17777:2: ( 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:17777:3: rule__XFeatureCall__Group_1_2__0
            	    {
            	    pushFollow(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:17785: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:17789:1: ( rule__XFeatureCall__Group_1__3__Impl )
            // InternalXcore.g:17790:2: rule__XFeatureCall__Group_1__3__Impl
            {
            pushFollow(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:17796:1: rule__XFeatureCall__Group_1__3__Impl : ( '>' ) ;
    public final void rule__XFeatureCall__Group_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:17800:1: ( ( '>' ) )
            // InternalXcore.g:17801:1: ( '>' )
            {
            // InternalXcore.g:17801:1: ( '>' )
            // InternalXcore.g:17802:2: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3()); 
            }
            match(input,65,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:17812: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:17816:1: ( rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 )
            // InternalXcore.g:17817:2: rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1
            {
            pushFollow(FOLLOW_100);
            rule__XFeatureCall__Group_1_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:17824: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:17828:1: ( ( ',' ) )
            // InternalXcore.g:17829:1: ( ',' )
            {
            // InternalXcore.g:17829:1: ( ',' )
            // InternalXcore.g:17830:2: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0()); 
            }
            match(input,87,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:17839: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:17843:1: ( rule__XFeatureCall__Group_1_2__1__Impl )
            // InternalXcore.g:17844:2: rule__XFeatureCall__Group_1_2__1__Impl
            {
            pushFollow(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:17850: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:17854:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) )
            // InternalXcore.g:17855:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
            {
            // InternalXcore.g:17855:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
            // InternalXcore.g:17856:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_2_1()); 
            }
            // InternalXcore.g:17857:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
            // InternalXcore.g:17857:3: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1
            {
            pushFollow(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:17866: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:17870:1: ( rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 )
            // InternalXcore.g:17871:2: rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1
            {
            pushFollow(FOLLOW_101);
            rule__XFeatureCall__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:17878: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:17882:1: ( ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) )
            // InternalXcore.g:17883:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
            {
            // InternalXcore.g:17883:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
            // InternalXcore.g:17884:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallAssignment_3_0()); 
            }
            // InternalXcore.g:17885:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
            // InternalXcore.g:17885:3: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0
            {
            pushFollow(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:17893: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:17897:1: ( rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 )
            // InternalXcore.g:17898:2: rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2
            {
            pushFollow(FOLLOW_101);
            rule__XFeatureCall__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:17905: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:17909:1: ( ( ( rule__XFeatureCall__Alternatives_3_1 )? ) )
            // InternalXcore.g:17910:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
            {
            // InternalXcore.g:17910:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
            // InternalXcore.g:17911:2: ( rule__XFeatureCall__Alternatives_3_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getAlternatives_3_1()); 
            }
            // InternalXcore.g:17912:2: ( 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:17912:3: rule__XFeatureCall__Alternatives_3_1
                    {
                    pushFollow(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:17920: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:17924:1: ( rule__XFeatureCall__Group_3__2__Impl )
            // InternalXcore.g:17925:2: rule__XFeatureCall__Group_3__2__Impl
            {
            pushFollow(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:17931:1: rule__XFeatureCall__Group_3__2__Impl : ( ')' ) ;
    public final void rule__XFeatureCall__Group_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:17935:1: ( ( ')' ) )
            // InternalXcore.g:17936:1: ( ')' )
            {
            // InternalXcore.g:17936:1: ( ')' )
            // InternalXcore.g:17937:2: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2()); 
            }
            match(input,86,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:17947: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:17951:1: ( rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 )
            // InternalXcore.g:17952:2: rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1
            {
            pushFollow(FOLLOW_38);
            rule__XFeatureCall__Group_3_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:17959: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:17963:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) )
            // InternalXcore.g:17964:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
            {
            // InternalXcore.g:17964:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
            // InternalXcore.g:17965:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_0()); 
            }
            // InternalXcore.g:17966:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
            // InternalXcore.g:17966:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0
            {
            pushFollow(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:17974: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:17978:1: ( rule__XFeatureCall__Group_3_1_1__1__Impl )
            // InternalXcore.g:17979:2: rule__XFeatureCall__Group_3_1_1__1__Impl
            {
            pushFollow(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:17985: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:17989:1: ( ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) )
            // InternalXcore.g:17990:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
            {
            // InternalXcore.g:17990:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
            // InternalXcore.g:17991:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1_1()); 
            }
            // InternalXcore.g:17992:2: ( 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:17992:3: rule__XFeatureCall__Group_3_1_1_1__0
            	    {
            	    pushFollow(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:18001: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:18005:1: ( rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 )
            // InternalXcore.g:18006:2: rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1
            {
            pushFollow(FOLLOW_72);
            rule__XFeatureCall__Group_3_1_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18013: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:18017:1: ( ( ',' ) )
            // InternalXcore.g:18018:1: ( ',' )
            {
            // InternalXcore.g:18018:1: ( ',' )
            // InternalXcore.g:18019:2: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0()); 
            }
            match(input,87,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:18028: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:18032:1: ( rule__XFeatureCall__Group_3_1_1_1__1__Impl )
            // InternalXcore.g:18033:2: rule__XFeatureCall__Group_3_1_1_1__1__Impl
            {
            pushFollow(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:18039: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:18043:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) )
            // InternalXcore.g:18044:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
            {
            // InternalXcore.g:18044:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
            // InternalXcore.g:18045:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_1_1()); 
            }
            // InternalXcore.g:18046:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
            // InternalXcore.g:18046:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1
            {
            pushFollow(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:18055: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:18059:1: ( rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 )
            // InternalXcore.g:18060:2: rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1
            {
            pushFollow(FOLLOW_123);
            rule__XConstructorCall__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18067:1: rule__XConstructorCall__Group__0__Impl : ( () ) ;
    public final void rule__XConstructorCall__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:18071:1: ( ( () ) )
            // InternalXcore.g:18072:1: ( () )
            {
            // InternalXcore.g:18072:1: ( () )
            // InternalXcore.g:18073:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0()); 
            }
            // InternalXcore.g:18074:2: ()
            // InternalXcore.g:18074:3: 
            {
            }

            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:18082: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:18086:1: ( rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 )
            // InternalXcore.g:18087:2: rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2
            {
            pushFollow(FOLLOW_6);
            rule__XConstructorCall__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18094:1: rule__XConstructorCall__Group__1__Impl : ( 'new' ) ;
    public final void rule__XConstructorCall__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:18098:1: ( ( 'new' ) )
            // InternalXcore.g:18099:1: ( 'new' )
            {
            // InternalXcore.g:18099:1: ( 'new' )
            // InternalXcore.g:18100:2: 'new'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getNewKeyword_1()); 
            }
            match(input,106,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:18109: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:18113:1: ( rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 )
            // InternalXcore.g:18114:2: rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3
            {
            pushFollow(FOLLOW_124);
            rule__XConstructorCall__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18121: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:18125:1: ( ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) )
            // InternalXcore.g:18126:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
            {
            // InternalXcore.g:18126:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
            // InternalXcore.g:18127:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getConstructorAssignment_2()); 
            }
            // InternalXcore.g:18128:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
            // InternalXcore.g:18128:3: rule__XConstructorCall__ConstructorAssignment_2
            {
            pushFollow(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:18136: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:18140:1: ( rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 )
            // InternalXcore.g:18141:2: rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4
            {
            pushFollow(FOLLOW_124);
            rule__XConstructorCall__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18148: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:18152:1: ( ( ( rule__XConstructorCall__Group_3__0 )? ) )
            // InternalXcore.g:18153:1: ( ( rule__XConstructorCall__Group_3__0 )? )
            {
            // InternalXcore.g:18153:1: ( ( rule__XConstructorCall__Group_3__0 )? )
            // InternalXcore.g:18154:2: ( rule__XConstructorCall__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getGroup_3()); 
            }
            // InternalXcore.g:18155:2: ( rule__XConstructorCall__Group_3__0 )?
            int alt167=2;
            alt167 = dfa167.predict(input);
            switch (alt167) {
                case 1 :
                    // InternalXcore.g:18155:3: rule__XConstructorCall__Group_3__0
                    {
                    pushFollow(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:18163: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:18167:1: ( rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 )
            // InternalXcore.g:18168:2: rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5
            {
            pushFollow(FOLLOW_124);
            rule__XConstructorCall__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18175: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:18179:1: ( ( ( rule__XConstructorCall__Group_4__0 )? ) )
            // InternalXcore.g:18180:1: ( ( rule__XConstructorCall__Group_4__0 )? )
            {
            // InternalXcore.g:18180:1: ( ( rule__XConstructorCall__Group_4__0 )? )
            // InternalXcore.g:18181:2: ( rule__XConstructorCall__Group_4__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getGroup_4()); 
            }
            // InternalXcore.g:18182:2: ( rule__XConstructorCall__Group_4__0 )?
            int alt168=2;
            alt168 = dfa168.predict(input);
            switch (alt168) {
                case 1 :
                    // InternalXcore.g:18182:3: rule__XConstructorCall__Group_4__0
                    {
                    pushFollow(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:18190: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:18194:1: ( rule__XConstructorCall__Group__5__Impl )
            // InternalXcore.g:18195:2: rule__XConstructorCall__Group__5__Impl
            {
            pushFollow(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:18201: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:18205:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) )
            // InternalXcore.g:18206:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
            {
            // InternalXcore.g:18206:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
            // InternalXcore.g:18207:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_5()); 
            }
            // InternalXcore.g:18208:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
            int alt169=2;
            alt169 = dfa169.predict(input);
            switch (alt169) {
                case 1 :
                    // InternalXcore.g:18208:3: rule__XConstructorCall__ArgumentsAssignment_5
                    {
                    pushFollow(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:18217: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:18221:1: ( rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 )
            // InternalXcore.g:18222:2: rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1
            {
            pushFollow(FOLLOW_100);
            rule__XConstructorCall__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18229:1: rule__XConstructorCall__Group_3__0__Impl : ( ( '<' ) ) ;
    public final void rule__XConstructorCall__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:18233:1: ( ( ( '<' ) ) )
            // InternalXcore.g:18234:1: ( ( '<' ) )
            {
            // InternalXcore.g:18234:1: ( ( '<' ) )
            // InternalXcore.g:18235:2: ( '<' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0()); 
            }
            // InternalXcore.g:18236:2: ( '<' )
            // InternalXcore.g:18236:3: '<'
            {
            match(input,66,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:18244: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:18248:1: ( rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 )
            // InternalXcore.g:18249:2: rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2
            {
            pushFollow(FOLLOW_25);
            rule__XConstructorCall__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18256: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:18260:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) )
            // InternalXcore.g:18261:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
            {
            // InternalXcore.g:18261:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
            // InternalXcore.g:18262:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_1()); 
            }
            // InternalXcore.g:18263:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
            // InternalXcore.g:18263:3: rule__XConstructorCall__TypeArgumentsAssignment_3_1
            {
            pushFollow(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:18271: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:18275:1: ( rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 )
            // InternalXcore.g:18276:2: rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3
            {
            pushFollow(FOLLOW_25);
            rule__XConstructorCall__Group_3__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18283: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:18287:1: ( ( ( rule__XConstructorCall__Group_3_2__0 )* ) )
            // InternalXcore.g:18288:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
            {
            // InternalXcore.g:18288:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
            // InternalXcore.g:18289:2: ( rule__XConstructorCall__Group_3_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getGroup_3_2()); 
            }
            // InternalXcore.g:18290:2: ( 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:18290:3: rule__XConstructorCall__Group_3_2__0
            	    {
            	    pushFollow(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:18298: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:18302:1: ( rule__XConstructorCall__Group_3__3__Impl )
            // InternalXcore.g:18303:2: rule__XConstructorCall__Group_3__3__Impl
            {
            pushFollow(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:18309:1: rule__XConstructorCall__Group_3__3__Impl : ( '>' ) ;
    public final void rule__XConstructorCall__Group_3__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:18313:1: ( ( '>' ) )
            // InternalXcore.g:18314:1: ( '>' )
            {
            // InternalXcore.g:18314:1: ( '>' )
            // InternalXcore.g:18315:2: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3()); 
            }
            match(input,65,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:18325: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:18329:1: ( rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 )
            // InternalXcore.g:18330:2: rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1
            {
            pushFollow(FOLLOW_100);
            rule__XConstructorCall__Group_3_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18337: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:18341:1: ( ( ',' ) )
            // InternalXcore.g:18342:1: ( ',' )
            {
            // InternalXcore.g:18342:1: ( ',' )
            // InternalXcore.g:18343:2: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0()); 
            }
            match(input,87,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:18352: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:18356:1: ( rule__XConstructorCall__Group_3_2__1__Impl )
            // InternalXcore.g:18357:2: rule__XConstructorCall__Group_3_2__1__Impl
            {
            pushFollow(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:18363: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:18367:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) )
            // InternalXcore.g:18368:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
            {
            // InternalXcore.g:18368:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
            // InternalXcore.g:18369:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_2_1()); 
            }
            // InternalXcore.g:18370:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
            // InternalXcore.g:18370:3: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1
            {
            pushFollow(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:18379: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:18383:1: ( rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 )
            // InternalXcore.g:18384:2: rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1
            {
            pushFollow(FOLLOW_101);
            rule__XConstructorCall__Group_4__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18391: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:18395:1: ( ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) )
            // InternalXcore.g:18396:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
            {
            // InternalXcore.g:18396:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
            // InternalXcore.g:18397:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallAssignment_4_0()); 
            }
            // InternalXcore.g:18398:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
            // InternalXcore.g:18398:3: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0
            {
            pushFollow(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:18406: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:18410:1: ( rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 )
            // InternalXcore.g:18411:2: rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2
            {
            pushFollow(FOLLOW_101);
            rule__XConstructorCall__Group_4__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18418: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:18422:1: ( ( ( rule__XConstructorCall__Alternatives_4_1 )? ) )
            // InternalXcore.g:18423:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
            {
            // InternalXcore.g:18423:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
            // InternalXcore.g:18424:2: ( rule__XConstructorCall__Alternatives_4_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getAlternatives_4_1()); 
            }
            // InternalXcore.g:18425:2: ( 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:18425:3: rule__XConstructorCall__Alternatives_4_1
                    {
                    pushFollow(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:18433: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:18437:1: ( rule__XConstructorCall__Group_4__2__Impl )
            // InternalXcore.g:18438:2: rule__XConstructorCall__Group_4__2__Impl
            {
            pushFollow(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:18444:1: rule__XConstructorCall__Group_4__2__Impl : ( ')' ) ;
    public final void rule__XConstructorCall__Group_4__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:18448:1: ( ( ')' ) )
            // InternalXcore.g:18449:1: ( ')' )
            {
            // InternalXcore.g:18449:1: ( ')' )
            // InternalXcore.g:18450:2: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2()); 
            }
            match(input,86,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:18460: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:18464:1: ( rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 )
            // InternalXcore.g:18465:2: rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1
            {
            pushFollow(FOLLOW_38);
            rule__XConstructorCall__Group_4_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18472: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:18476:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) )
            // InternalXcore.g:18477:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
            {
            // InternalXcore.g:18477:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
            // InternalXcore.g:18478:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_0()); 
            }
            // InternalXcore.g:18479:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
            // InternalXcore.g:18479:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0
            {
            pushFollow(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:18487: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:18491:1: ( rule__XConstructorCall__Group_4_1_1__1__Impl )
            // InternalXcore.g:18492:2: rule__XConstructorCall__Group_4_1_1__1__Impl
            {
            pushFollow(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:18498: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:18502:1: ( ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) )
            // InternalXcore.g:18503:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
            {
            // InternalXcore.g:18503:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
            // InternalXcore.g:18504:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1_1()); 
            }
            // InternalXcore.g:18505:2: ( 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:18505:3: rule__XConstructorCall__Group_4_1_1_1__0
            	    {
            	    pushFollow(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:18514: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:18518:1: ( rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 )
            // InternalXcore.g:18519:2: rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1
            {
            pushFollow(FOLLOW_72);
            rule__XConstructorCall__Group_4_1_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18526: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:18530:1: ( ( ',' ) )
            // InternalXcore.g:18531:1: ( ',' )
            {
            // InternalXcore.g:18531:1: ( ',' )
            // InternalXcore.g:18532:2: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0()); 
            }
            match(input,87,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:18541: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:18545:1: ( rule__XConstructorCall__Group_4_1_1_1__1__Impl )
            // InternalXcore.g:18546:2: rule__XConstructorCall__Group_4_1_1_1__1__Impl
            {
            pushFollow(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:18552: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:18556:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) )
            // InternalXcore.g:18557:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
            {
            // InternalXcore.g:18557:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
            // InternalXcore.g:18558:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_1_1()); 
            }
            // InternalXcore.g:18559:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
            // InternalXcore.g:18559:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1
            {
            pushFollow(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:18568: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:18572:1: ( rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 )
            // InternalXcore.g:18573:2: rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1
            {
            pushFollow(FOLLOW_125);
            rule__XBooleanLiteral__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18580:1: rule__XBooleanLiteral__Group__0__Impl : ( () ) ;
    public final void rule__XBooleanLiteral__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:18584:1: ( ( () ) )
            // InternalXcore.g:18585:1: ( () )
            {
            // InternalXcore.g:18585:1: ( () )
            // InternalXcore.g:18586:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0()); 
            }
            // InternalXcore.g:18587:2: ()
            // InternalXcore.g:18587:3: 
            {
            }

            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:18595: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:18599:1: ( rule__XBooleanLiteral__Group__1__Impl )
            // InternalXcore.g:18600:2: rule__XBooleanLiteral__Group__1__Impl
            {
            pushFollow(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:18606: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:18610:1: ( ( ( rule__XBooleanLiteral__Alternatives_1 ) ) )
            // InternalXcore.g:18611:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
            {
            // InternalXcore.g:18611:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
            // InternalXcore.g:18612:2: ( rule__XBooleanLiteral__Alternatives_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBooleanLiteralAccess().getAlternatives_1()); 
            }
            // InternalXcore.g:18613:2: ( rule__XBooleanLiteral__Alternatives_1 )
            // InternalXcore.g:18613:3: rule__XBooleanLiteral__Alternatives_1
            {
            pushFollow(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:18622: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:18626:1: ( rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 )
            // InternalXcore.g:18627:2: rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1
            {
            pushFollow(FOLLOW_126);
            rule__XNullLiteral__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18634:1: rule__XNullLiteral__Group__0__Impl : ( () ) ;
    public final void rule__XNullLiteral__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:18638:1: ( ( () ) )
            // InternalXcore.g:18639:1: ( () )
            {
            // InternalXcore.g:18639:1: ( () )
            // InternalXcore.g:18640:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0()); 
            }
            // InternalXcore.g:18641:2: ()
            // InternalXcore.g:18641:3: 
            {
            }

            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:18649: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:18653:1: ( rule__XNullLiteral__Group__1__Impl )
            // InternalXcore.g:18654:2: rule__XNullLiteral__Group__1__Impl
            {
            pushFollow(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:18660:1: rule__XNullLiteral__Group__1__Impl : ( 'null' ) ;
    public final void rule__XNullLiteral__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:18664:1: ( ( 'null' ) )
            // InternalXcore.g:18665:1: ( 'null' )
            {
            // InternalXcore.g:18665:1: ( 'null' )
            // InternalXcore.g:18666:2: 'null'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXNullLiteralAccess().getNullKeyword_1()); 
            }
            match(input,107,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:18676: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:18680:1: ( rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 )
            // InternalXcore.g:18681:2: rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1
            {
            pushFollow(FOLLOW_127);
            rule__XNumberLiteral__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18688:1: rule__XNumberLiteral__Group__0__Impl : ( () ) ;
    public final void rule__XNumberLiteral__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:18692:1: ( ( () ) )
            // InternalXcore.g:18693:1: ( () )
            {
            // InternalXcore.g:18693:1: ( () )
            // InternalXcore.g:18694:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0()); 
            }
            // InternalXcore.g:18695:2: ()
            // InternalXcore.g:18695:3: 
            {
            }

            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:18703: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:18707:1: ( rule__XNumberLiteral__Group__1__Impl )
            // InternalXcore.g:18708:2: rule__XNumberLiteral__Group__1__Impl
            {
            pushFollow(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:18714: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:18718:1: ( ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) )
            // InternalXcore.g:18719:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
            {
            // InternalXcore.g:18719:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
            // InternalXcore.g:18720:2: ( rule__XNumberLiteral__ValueAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXNumberLiteralAccess().getValueAssignment_1()); 
            }
            // InternalXcore.g:18721:2: ( rule__XNumberLiteral__ValueAssignment_1 )
            // InternalXcore.g:18721:3: rule__XNumberLiteral__ValueAssignment_1
            {
            pushFollow(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:18730: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:18734:1: ( rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 )
            // InternalXcore.g:18735:2: rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1
            {
            pushFollow(FOLLOW_16);
            rule__XStringLiteral__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18742:1: rule__XStringLiteral__Group__0__Impl : ( () ) ;
    public final void rule__XStringLiteral__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:18746:1: ( ( () ) )
            // InternalXcore.g:18747:1: ( () )
            {
            // InternalXcore.g:18747:1: ( () )
            // InternalXcore.g:18748:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0()); 
            }
            // InternalXcore.g:18749:2: ()
            // InternalXcore.g:18749:3: 
            {
            }

            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:18757: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:18761:1: ( rule__XStringLiteral__Group__1__Impl )
            // InternalXcore.g:18762:2: rule__XStringLiteral__Group__1__Impl
            {
            pushFollow(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:18768: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:18772:1: ( ( ( rule__XStringLiteral__ValueAssignment_1 ) ) )
            // InternalXcore.g:18773:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
            {
            // InternalXcore.g:18773:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
            // InternalXcore.g:18774:2: ( rule__XStringLiteral__ValueAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXStringLiteralAccess().getValueAssignment_1()); 
            }
            // InternalXcore.g:18775:2: ( rule__XStringLiteral__ValueAssignment_1 )
            // InternalXcore.g:18775:3: rule__XStringLiteral__ValueAssignment_1
            {
            pushFollow(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:18784: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:18788:1: ( rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 )
            // InternalXcore.g:18789:2: rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1
            {
            pushFollow(FOLLOW_128);
            rule__XTypeLiteral__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18796:1: rule__XTypeLiteral__Group__0__Impl : ( () ) ;
    public final void rule__XTypeLiteral__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:18800:1: ( ( () ) )
            // InternalXcore.g:18801:1: ( () )
            {
            // InternalXcore.g:18801:1: ( () )
            // InternalXcore.g:18802:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0()); 
            }
            // InternalXcore.g:18803:2: ()
            // InternalXcore.g:18803:3: 
            {
            }

            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:18811: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:18815:1: ( rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 )
            // InternalXcore.g:18816:2: rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2
            {
            pushFollow(FOLLOW_12);
            rule__XTypeLiteral__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18823:1: rule__XTypeLiteral__Group__1__Impl : ( 'typeof' ) ;
    public final void rule__XTypeLiteral__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:18827:1: ( ( 'typeof' ) )
            // InternalXcore.g:18828:1: ( 'typeof' )
            {
            // InternalXcore.g:18828:1: ( 'typeof' )
            // InternalXcore.g:18829:2: 'typeof'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1()); 
            }
            match(input,108,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:18838: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:18842:1: ( rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 )
            // InternalXcore.g:18843:2: rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3
            {
            pushFollow(FOLLOW_6);
            rule__XTypeLiteral__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18850:1: rule__XTypeLiteral__Group__2__Impl : ( '(' ) ;
    public final void rule__XTypeLiteral__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:18854:1: ( ( '(' ) )
            // InternalXcore.g:18855:1: ( '(' )
            {
            // InternalXcore.g:18855:1: ( '(' )
            // InternalXcore.g:18856:2: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2()); 
            }
            match(input,85,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:18865: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:18869:1: ( rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 )
            // InternalXcore.g:18870:2: rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4
            {
            pushFollow(FOLLOW_129);
            rule__XTypeLiteral__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18877: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:18881:1: ( ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) )
            // InternalXcore.g:18882:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
            {
            // InternalXcore.g:18882:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
            // InternalXcore.g:18883:2: ( rule__XTypeLiteral__TypeAssignment_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeLiteralAccess().getTypeAssignment_3()); 
            }
            // InternalXcore.g:18884:2: ( rule__XTypeLiteral__TypeAssignment_3 )
            // InternalXcore.g:18884:3: rule__XTypeLiteral__TypeAssignment_3
            {
            pushFollow(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:18892: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:18896:1: ( rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 )
            // InternalXcore.g:18897:2: rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5
            {
            pushFollow(FOLLOW_129);
            rule__XTypeLiteral__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18904: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:18908:1: ( ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) )
            // InternalXcore.g:18909:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
            {
            // InternalXcore.g:18909:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
            // InternalXcore.g:18910:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsAssignment_4()); 
            }
            // InternalXcore.g:18911:2: ( 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:18911:3: rule__XTypeLiteral__ArrayDimensionsAssignment_4
            	    {
            	    pushFollow(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:18919: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:18923:1: ( rule__XTypeLiteral__Group__5__Impl )
            // InternalXcore.g:18924:2: rule__XTypeLiteral__Group__5__Impl
            {
            pushFollow(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:18930:1: rule__XTypeLiteral__Group__5__Impl : ( ')' ) ;
    public final void rule__XTypeLiteral__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:18934:1: ( ( ')' ) )
            // InternalXcore.g:18935:1: ( ')' )
            {
            // InternalXcore.g:18935:1: ( ')' )
            // InternalXcore.g:18936:2: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5()); 
            }
            match(input,86,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:18946: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:18950:1: ( rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 )
            // InternalXcore.g:18951:2: rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1
            {
            pushFollow(FOLLOW_131);
            rule__XThrowExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18958:1: rule__XThrowExpression__Group__0__Impl : ( () ) ;
    public final void rule__XThrowExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:18962:1: ( ( () ) )
            // InternalXcore.g:18963:1: ( () )
            {
            // InternalXcore.g:18963:1: ( () )
            // InternalXcore.g:18964:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0()); 
            }
            // InternalXcore.g:18965:2: ()
            // InternalXcore.g:18965:3: 
            {
            }

            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:18973: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:18977:1: ( rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 )
            // InternalXcore.g:18978:2: rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2
            {
            pushFollow(FOLLOW_72);
            rule__XThrowExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:18985:1: rule__XThrowExpression__Group__1__Impl : ( 'throw' ) ;
    public final void rule__XThrowExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:18989:1: ( ( 'throw' ) )
            // InternalXcore.g:18990:1: ( 'throw' )
            {
            // InternalXcore.g:18990:1: ( 'throw' )
            // InternalXcore.g:18991:2: 'throw'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1()); 
            }
            match(input,109,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:19000: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:19004:1: ( rule__XThrowExpression__Group__2__Impl )
            // InternalXcore.g:19005:2: rule__XThrowExpression__Group__2__Impl
            {
            pushFollow(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:19011: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:19015:1: ( ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) )
            // InternalXcore.g:19016:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
            {
            // InternalXcore.g:19016:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
            // InternalXcore.g:19017:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXThrowExpressionAccess().getExpressionAssignment_2()); 
            }
            // InternalXcore.g:19018:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
            // InternalXcore.g:19018:3: rule__XThrowExpression__ExpressionAssignment_2
            {
            pushFollow(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:19027: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:19031:1: ( rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 )
            // InternalXcore.g:19032:2: rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1
            {
            pushFollow(FOLLOW_132);
            rule__XReturnExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:19039:1: rule__XReturnExpression__Group__0__Impl : ( () ) ;
    public final void rule__XReturnExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:19043:1: ( ( () ) )
            // InternalXcore.g:19044:1: ( () )
            {
            // InternalXcore.g:19044:1: ( () )
            // InternalXcore.g:19045:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0()); 
            }
            // InternalXcore.g:19046:2: ()
            // InternalXcore.g:19046:3: 
            {
            }

            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:19054: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:19058:1: ( rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 )
            // InternalXcore.g:19059:2: rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2
            {
            pushFollow(FOLLOW_72);
            rule__XReturnExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:19066:1: rule__XReturnExpression__Group__1__Impl : ( 'return' ) ;
    public final void rule__XReturnExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:19070:1: ( ( 'return' ) )
            // InternalXcore.g:19071:1: ( 'return' )
            {
            // InternalXcore.g:19071:1: ( 'return' )
            // InternalXcore.g:19072:2: 'return'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1()); 
            }
            match(input,110,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:19081: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:19085:1: ( rule__XReturnExpression__Group__2__Impl )
            // InternalXcore.g:19086:2: rule__XReturnExpression__Group__2__Impl
            {
            pushFollow(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:19092: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:19096:1: ( ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) )
            // InternalXcore.g:19097:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
            {
            // InternalXcore.g:19097:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
            // InternalXcore.g:19098:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReturnExpressionAccess().getExpressionAssignment_2()); 
            }
            // InternalXcore.g:19099:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
            int alt174=2;
            alt174 = dfa174.predict(input);
            switch (alt174) {
                case 1 :
                    // InternalXcore.g:19099:3: rule__XReturnExpression__ExpressionAssignment_2
                    {
                    pushFollow(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:19108: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:19112:1: ( rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 )
            // InternalXcore.g:19113:2: rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1
            {
            pushFollow(FOLLOW_133);
            rule__XTryCatchFinallyExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:19120:1: rule__XTryCatchFinallyExpression__Group__0__Impl : ( () ) ;
    public final void rule__XTryCatchFinallyExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:19124:1: ( ( () ) )
            // InternalXcore.g:19125:1: ( () )
            {
            // InternalXcore.g:19125:1: ( () )
            // InternalXcore.g:19126:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0()); 
            }
            // InternalXcore.g:19127:2: ()
            // InternalXcore.g:19127:3: 
            {
            }

            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:19135: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:19139:1: ( rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 )
            // InternalXcore.g:19140:2: rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2
            {
            pushFollow(FOLLOW_72);
            rule__XTryCatchFinallyExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:19147:1: rule__XTryCatchFinallyExpression__Group__1__Impl : ( 'try' ) ;
    public final void rule__XTryCatchFinallyExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:19151:1: ( ( 'try' ) )
            // InternalXcore.g:19152:1: ( 'try' )
            {
            // InternalXcore.g:19152:1: ( 'try' )
            // InternalXcore.g:19153:2: 'try'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1()); 
            }
            match(input,111,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:19162: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:19166:1: ( rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 )
            // InternalXcore.g:19167:2: rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3
            {
            pushFollow(FOLLOW_134);
            rule__XTryCatchFinallyExpression__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:19174: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:19178:1: ( ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) )
            // InternalXcore.g:19179:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
            {
            // InternalXcore.g:19179:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
            // InternalXcore.g:19180:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionAssignment_2()); 
            }
            // InternalXcore.g:19181:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
            // InternalXcore.g:19181:3: rule__XTryCatchFinallyExpression__ExpressionAssignment_2
            {
            pushFollow(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:19189: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:19193:1: ( rule__XTryCatchFinallyExpression__Group__3__Impl )
            // InternalXcore.g:19194:2: rule__XTryCatchFinallyExpression__Group__3__Impl
            {
            pushFollow(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:19200: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:19204:1: ( ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) )
            // InternalXcore.g:19205:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
            {
            // InternalXcore.g:19205:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
            // InternalXcore.g:19206:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getAlternatives_3()); 
            }
            // InternalXcore.g:19207:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
            // InternalXcore.g:19207:3: rule__XTryCatchFinallyExpression__Alternatives_3
            {
            pushFollow(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:19216: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:19220:1: ( rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 )
            // InternalXcore.g:19221:2: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1
            {
            pushFollow(FOLLOW_135);
            rule__XTryCatchFinallyExpression__Group_3_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:19228: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:19232:1: ( ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) )
            // InternalXcore.g:19233:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
            {
            // InternalXcore.g:19233:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
            // InternalXcore.g:19234:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
            {
            // InternalXcore.g:19234:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) )
            // InternalXcore.g:19235:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); 
            }
            // InternalXcore.g:19236:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
            // InternalXcore.g:19236:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
            {
            pushFollow(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:19239:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
            // InternalXcore.g:19240:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); 
            }
            // InternalXcore.g:19241:3: ( 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:19241:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
            	    {
            	    pushFollow(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:19250: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:19254:1: ( rule__XTryCatchFinallyExpression__Group_3_0__1__Impl )
            // InternalXcore.g:19255:2: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl
            {
            pushFollow(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:19261: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:19265:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) )
            // InternalXcore.g:19266:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
            {
            // InternalXcore.g:19266:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
            // InternalXcore.g:19267:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0_1()); 
            }
            // InternalXcore.g:19268:2: ( 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:19268:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
                    {
                    pushFollow(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:19277: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:19281:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 )
            // InternalXcore.g:19282:2: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1
            {
            pushFollow(FOLLOW_72);
            rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:19289: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:19293:1: ( ( ( 'finally' ) ) )
            // InternalXcore.g:19294:1: ( ( 'finally' ) )
            {
            // InternalXcore.g:19294:1: ( ( 'finally' ) )
            // InternalXcore.g:19295:2: ( 'finally' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0()); 
            }
            // InternalXcore.g:19296:2: ( 'finally' )
            // InternalXcore.g:19296:3: 'finally'
            {
            match(input,112,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:19304: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:19308:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl )
            // InternalXcore.g:19309:2: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl
            {
            pushFollow(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:19315: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:19319:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) )
            // InternalXcore.g:19320:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
            {
            // InternalXcore.g:19320:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
            // InternalXcore.g:19321:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_0_1_1()); 
            }
            // InternalXcore.g:19322:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
            // InternalXcore.g:19322:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1
            {
            pushFollow(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:19331: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:19335:1: ( rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 )
            // InternalXcore.g:19336:2: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1
            {
            pushFollow(FOLLOW_72);
            rule__XTryCatchFinallyExpression__Group_3_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:19343: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:19347:1: ( ( 'finally' ) )
            // InternalXcore.g:19348:1: ( 'finally' )
            {
            // InternalXcore.g:19348:1: ( 'finally' )
            // InternalXcore.g:19349:2: 'finally'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0()); 
            }
            match(input,112,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:19358: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:19362:1: ( rule__XTryCatchFinallyExpression__Group_3_1__1__Impl )
            // InternalXcore.g:19363:2: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl
            {
            pushFollow(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:19369: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:19373:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) )
            // InternalXcore.g:19374:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
            {
            // InternalXcore.g:19374:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
            // InternalXcore.g:19375:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_1_1()); 
            }
            // InternalXcore.g:19376:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
            // InternalXcore.g:19376:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1
            {
            pushFollow(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:19385: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:19389:1: ( rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 )
            // InternalXcore.g:19390:2: rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1
            {
            pushFollow(FOLLOW_72);
            rule__XSynchronizedExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:19397: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:19401:1: ( ( ( rule__XSynchronizedExpression__Group_0__0 ) ) )
            // InternalXcore.g:19402:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
            {
            // InternalXcore.g:19402:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
            // InternalXcore.g:19403:2: ( rule__XSynchronizedExpression__Group_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0()); 
            }
            // InternalXcore.g:19404:2: ( rule__XSynchronizedExpression__Group_0__0 )
            // InternalXcore.g:19404:3: rule__XSynchronizedExpression__Group_0__0
            {
            pushFollow(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:19412: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:19416:1: ( rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 )
            // InternalXcore.g:19417:2: rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2
            {
            pushFollow(FOLLOW_108);
            rule__XSynchronizedExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:19424: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:19428:1: ( ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) )
            // InternalXcore.g:19429:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
            {
            // InternalXcore.g:19429:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
            // InternalXcore.g:19430:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionAccess().getParamAssignment_1()); 
            }
            // InternalXcore.g:19431:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
            // InternalXcore.g:19431:3: rule__XSynchronizedExpression__ParamAssignment_1
            {
            pushFollow(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:19439: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:19443:1: ( rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 )
            // InternalXcore.g:19444:2: rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3
            {
            pushFollow(FOLLOW_72);
            rule__XSynchronizedExpression__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:19451:1: rule__XSynchronizedExpression__Group__2__Impl : ( ')' ) ;
    public final void rule__XSynchronizedExpression__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:19455:1: ( ( ')' ) )
            // InternalXcore.g:19456:1: ( ')' )
            {
            // InternalXcore.g:19456:1: ( ')' )
            // InternalXcore.g:19457:2: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2()); 
            }
            match(input,86,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:19466: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:19470:1: ( rule__XSynchronizedExpression__Group__3__Impl )
            // InternalXcore.g:19471:2: rule__XSynchronizedExpression__Group__3__Impl
            {
            pushFollow(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:19477: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:19481:1: ( ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) )
            // InternalXcore.g:19482:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
            {
            // InternalXcore.g:19482:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
            // InternalXcore.g:19483:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionAccess().getExpressionAssignment_3()); 
            }
            // InternalXcore.g:19484:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
            // InternalXcore.g:19484:3: rule__XSynchronizedExpression__ExpressionAssignment_3
            {
            pushFollow(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:19493: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:19497:1: ( rule__XSynchronizedExpression__Group_0__0__Impl )
            // InternalXcore.g:19498:2: rule__XSynchronizedExpression__Group_0__0__Impl
            {
            pushFollow(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:19504: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:19508:1: ( ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) )
            // InternalXcore.g:19509:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
            {
            // InternalXcore.g:19509:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
            // InternalXcore.g:19510:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0_0()); 
            }
            // InternalXcore.g:19511:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
            // InternalXcore.g:19511:3: rule__XSynchronizedExpression__Group_0_0__0
            {
            pushFollow(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:19520: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:19524:1: ( rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 )
            // InternalXcore.g:19525:2: rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1
            {
            pushFollow(FOLLOW_137);
            rule__XSynchronizedExpression__Group_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:19532: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:19536:1: ( ( () ) )
            // InternalXcore.g:19537:1: ( () )
            {
            // InternalXcore.g:19537:1: ( () )
            // InternalXcore.g:19538:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionAccess().getXSynchronizedExpressionAction_0_0_0()); 
            }
            // InternalXcore.g:19539:2: ()
            // InternalXcore.g:19539:3: 
            {
            }

            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:19547: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:19551:1: ( rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 )
            // InternalXcore.g:19552:2: rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2
            {
            pushFollow(FOLLOW_12);
            rule__XSynchronizedExpression__Group_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:19559: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:19563:1: ( ( 'synchronized' ) )
            // InternalXcore.g:19564:1: ( 'synchronized' )
            {
            // InternalXcore.g:19564:1: ( 'synchronized' )
            // InternalXcore.g:19565:2: 'synchronized'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1()); 
            }
            match(input,113,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:19574: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:19578:1: ( rule__XSynchronizedExpression__Group_0_0__2__Impl )
            // InternalXcore.g:19579:2: rule__XSynchronizedExpression__Group_0_0__2__Impl
            {
            pushFollow(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:19585: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:19589:1: ( ( '(' ) )
            // InternalXcore.g:19590:1: ( '(' )
            {
            // InternalXcore.g:19590:1: ( '(' )
            // InternalXcore.g:19591:2: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
            }
            match(input,85,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:19601: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:19605:1: ( rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 )
            // InternalXcore.g:19606:2: rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1
            {
            pushFollow(FOLLOW_12);
            rule__XCatchClause__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:19613:1: rule__XCatchClause__Group__0__Impl : ( ( 'catch' ) ) ;
    public final void rule__XCatchClause__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:19617:1: ( ( ( 'catch' ) ) )
            // InternalXcore.g:19618:1: ( ( 'catch' ) )
            {
            // InternalXcore.g:19618:1: ( ( 'catch' ) )
            // InternalXcore.g:19619:2: ( 'catch' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCatchClauseAccess().getCatchKeyword_0()); 
            }
            // InternalXcore.g:19620:2: ( 'catch' )
            // InternalXcore.g:19620:3: 'catch'
            {
            match(input,114,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:19628: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:19632:1: ( rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 )
            // InternalXcore.g:19633:2: rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2
            {
            pushFollow(FOLLOW_22);
            rule__XCatchClause__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:19640:1: rule__XCatchClause__Group__1__Impl : ( '(' ) ;
    public final void rule__XCatchClause__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:19644:1: ( ( '(' ) )
            // InternalXcore.g:19645:1: ( '(' )
            {
            // InternalXcore.g:19645:1: ( '(' )
            // InternalXcore.g:19646:2: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1()); 
            }
            match(input,85,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:19655: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:19659:1: ( rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 )
            // InternalXcore.g:19660:2: rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3
            {
            pushFollow(FOLLOW_108);
            rule__XCatchClause__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:19667: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:19671:1: ( ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) )
            // InternalXcore.g:19672:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
            {
            // InternalXcore.g:19672:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
            // InternalXcore.g:19673:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCatchClauseAccess().getDeclaredParamAssignment_2()); 
            }
            // InternalXcore.g:19674:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
            // InternalXcore.g:19674:3: rule__XCatchClause__DeclaredParamAssignment_2
            {
            pushFollow(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:19682: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:19686:1: ( rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 )
            // InternalXcore.g:19687:2: rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4
            {
            pushFollow(FOLLOW_72);
            rule__XCatchClause__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:19694:1: rule__XCatchClause__Group__3__Impl : ( ')' ) ;
    public final void rule__XCatchClause__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:19698:1: ( ( ')' ) )
            // InternalXcore.g:19699:1: ( ')' )
            {
            // InternalXcore.g:19699:1: ( ')' )
            // InternalXcore.g:19700:2: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3()); 
            }
            match(input,86,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:19709: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:19713:1: ( rule__XCatchClause__Group__4__Impl )
            // InternalXcore.g:19714:2: rule__XCatchClause__Group__4__Impl
            {
            pushFollow(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:19720: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:19724:1: ( ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) )
            // InternalXcore.g:19725:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
            {
            // InternalXcore.g:19725:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
            // InternalXcore.g:19726:2: ( rule__XCatchClause__ExpressionAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCatchClauseAccess().getExpressionAssignment_4()); 
            }
            // InternalXcore.g:19727:2: ( rule__XCatchClause__ExpressionAssignment_4 )
            // InternalXcore.g:19727:3: rule__XCatchClause__ExpressionAssignment_4
            {
            pushFollow(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:19736: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:19740:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
            // InternalXcore.g:19741:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
            {
            pushFollow(FOLLOW_69);
            rule__QualifiedName__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:19748:1: rule__QualifiedName__Group__0__Impl : ( ruleValidID ) ;
    public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:19752:1: ( ( ruleValidID ) )
            // InternalXcore.g:19753:1: ( ruleValidID )
            {
            // InternalXcore.g:19753:1: ( ruleValidID )
            // InternalXcore.g:19754:2: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); 
            }
            pushFollow(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:19763: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:19767:1: ( rule__QualifiedName__Group__1__Impl )
            // InternalXcore.g:19768:2: rule__QualifiedName__Group__1__Impl
            {
            pushFollow(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:19774: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:19778:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
            // InternalXcore.g:19779:1: ( ( rule__QualifiedName__Group_1__0 )* )
            {
            // InternalXcore.g:19779:1: ( ( rule__QualifiedName__Group_1__0 )* )
            // InternalXcore.g:19780:2: ( rule__QualifiedName__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
            }
            // InternalXcore.g:19781:2: ( rule__QualifiedName__Group_1__0 )*
            loop177:
            do {
                int alt177=2;
                alt177 = dfa177.predict(input);
                switch (alt177) {
            	case 1 :
            	    // InternalXcore.g:19781:3: rule__QualifiedName__Group_1__0
            	    {
            	    pushFollow(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:19790: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:19794:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
            // InternalXcore.g:19795:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
            {
            pushFollow(FOLLOW_6);
            rule__QualifiedName__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:19802:1: rule__QualifiedName__Group_1__0__Impl : ( ( '.' ) ) ;
    public final void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:19806:1: ( ( ( '.' ) ) )
            // InternalXcore.g:19807:1: ( ( '.' ) )
            {
            // InternalXcore.g:19807:1: ( ( '.' ) )
            // InternalXcore.g:19808:2: ( '.' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
            }
            // InternalXcore.g:19809:2: ( '.' )
            // InternalXcore.g:19809:3: '.'
            {
            match(input,80,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:19817: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:19821:1: ( rule__QualifiedName__Group_1__1__Impl )
            // InternalXcore.g:19822:2: rule__QualifiedName__Group_1__1__Impl
            {
            pushFollow(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:19828: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:19832:1: ( ( ruleValidID ) )
            // InternalXcore.g:19833:1: ( ruleValidID )
            {
            // InternalXcore.g:19833:1: ( ruleValidID )
            // InternalXcore.g:19834:2: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); 
            }
            pushFollow(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:19844: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:19848:1: ( rule__Number__Group_1__0__Impl rule__Number__Group_1__1 )
            // InternalXcore.g:19849:2: rule__Number__Group_1__0__Impl rule__Number__Group_1__1
            {
            pushFollow(FOLLOW_69);
            rule__Number__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:19856: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:19860:1: ( ( ( rule__Number__Alternatives_1_0 ) ) )
            // InternalXcore.g:19861:1: ( ( rule__Number__Alternatives_1_0 ) )
            {
            // InternalXcore.g:19861:1: ( ( rule__Number__Alternatives_1_0 ) )
            // InternalXcore.g:19862:2: ( rule__Number__Alternatives_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNumberAccess().getAlternatives_1_0()); 
            }
            // InternalXcore.g:19863:2: ( rule__Number__Alternatives_1_0 )
            // InternalXcore.g:19863:3: rule__Number__Alternatives_1_0
            {
            pushFollow(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:19871: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:19875:1: ( rule__Number__Group_1__1__Impl )
            // InternalXcore.g:19876:2: rule__Number__Group_1__1__Impl
            {
            pushFollow(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:19882: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:19886:1: ( ( ( rule__Number__Group_1_1__0 )? ) )
            // InternalXcore.g:19887:1: ( ( rule__Number__Group_1_1__0 )? )
            {
            // InternalXcore.g:19887:1: ( ( rule__Number__Group_1_1__0 )? )
            // InternalXcore.g:19888:2: ( rule__Number__Group_1_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNumberAccess().getGroup_1_1()); 
            }
            // InternalXcore.g:19889:2: ( 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:19889:3: rule__Number__Group_1_1__0
                    {
                    pushFollow(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:19898: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:19902:1: ( rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 )
            // InternalXcore.g:19903:2: rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1
            {
            pushFollow(FOLLOW_138);
            rule__Number__Group_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:19910: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:19914:1: ( ( '.' ) )
            // InternalXcore.g:19915:1: ( '.' )
            {
            // InternalXcore.g:19915:1: ( '.' )
            // InternalXcore.g:19916:2: '.'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0()); 
            }
            match(input,80,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:19925: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:19929:1: ( rule__Number__Group_1_1__1__Impl )
            // InternalXcore.g:19930:2: rule__Number__Group_1_1__1__Impl
            {
            pushFollow(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:19936: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:19940:1: ( ( ( rule__Number__Alternatives_1_1_1 ) ) )
            // InternalXcore.g:19941:1: ( ( rule__Number__Alternatives_1_1_1 ) )
            {
            // InternalXcore.g:19941:1: ( ( rule__Number__Alternatives_1_1_1 ) )
            // InternalXcore.g:19942:2: ( rule__Number__Alternatives_1_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNumberAccess().getAlternatives_1_1_1()); 
            }
            // InternalXcore.g:19943:2: ( rule__Number__Alternatives_1_1_1 )
            // InternalXcore.g:19943:3: rule__Number__Alternatives_1_1_1
            {
            pushFollow(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:19952: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:19956:1: ( rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 )
            // InternalXcore.g:19957:2: rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1
            {
            pushFollow(FOLLOW_103);
            rule__JvmTypeReference__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:19964: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:19968:1: ( ( ruleJvmParameterizedTypeReference ) )
            // InternalXcore.g:19969:1: ( ruleJvmParameterizedTypeReference )
            {
            // InternalXcore.g:19969:1: ( ruleJvmParameterizedTypeReference )
            // InternalXcore.g:19970:2: ruleJvmParameterizedTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0()); 
            }
            pushFollow(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:19979: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:19983:1: ( rule__JvmTypeReference__Group_0__1__Impl )
            // InternalXcore.g:19984:2: rule__JvmTypeReference__Group_0__1__Impl
            {
            pushFollow(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:19990: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:19994:1: ( ( ( rule__JvmTypeReference__Group_0_1__0 )* ) )
            // InternalXcore.g:19995:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
            {
            // InternalXcore.g:19995:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
            // InternalXcore.g:19996:2: ( rule__JvmTypeReference__Group_0_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1()); 
            }
            // InternalXcore.g:19997:2: ( 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:19997:3: rule__JvmTypeReference__Group_0_1__0
            	    {
            	    pushFollow(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:20006: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:20010:1: ( rule__JvmTypeReference__Group_0_1__0__Impl )
            // InternalXcore.g:20011:2: rule__JvmTypeReference__Group_0_1__0__Impl
            {
            pushFollow(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:20017: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:20021:1: ( ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) )
            // InternalXcore.g:20022:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
            {
            // InternalXcore.g:20022:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
            // InternalXcore.g:20023:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1_0()); 
            }
            // InternalXcore.g:20024:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
            // InternalXcore.g:20024:3: rule__JvmTypeReference__Group_0_1_0__0
            {
            pushFollow(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:20033: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:20037:1: ( rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 )
            // InternalXcore.g:20038:2: rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1
            {
            pushFollow(FOLLOW_103);
            rule__JvmTypeReference__Group_0_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:20045: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:20049:1: ( ( () ) )
            // InternalXcore.g:20050:1: ( () )
            {
            // InternalXcore.g:20050:1: ( () )
            // InternalXcore.g:20051:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()); 
            }
            // InternalXcore.g:20052:2: ()
            // InternalXcore.g:20052:3: 
            {
            }

            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:20060: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:20064:1: ( rule__JvmTypeReference__Group_0_1_0__1__Impl )
            // InternalXcore.g:20065:2: rule__JvmTypeReference__Group_0_1_0__1__Impl
            {
            pushFollow(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:20071: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:20075:1: ( ( ruleArrayBrackets ) )
            // InternalXcore.g:20076:1: ( ruleArrayBrackets )
            {
            // InternalXcore.g:20076:1: ( ruleArrayBrackets )
            // InternalXcore.g:20077:2: ruleArrayBrackets
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1()); 
            }
            pushFollow(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:20087: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:20091:1: ( rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 )
            // InternalXcore.g:20092:2: rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1
            {
            pushFollow(FOLLOW_106);
            rule__ArrayBrackets__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:20099:1: rule__ArrayBrackets__Group__0__Impl : ( '[' ) ;
    public final void rule__ArrayBrackets__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:20103:1: ( ( '[' ) )
            // InternalXcore.g:20104:1: ( '[' )
            {
            // InternalXcore.g:20104:1: ( '[' )
            // InternalXcore.g:20105:2: '['
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); 
            }
            match(input,92,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:20114: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:20118:1: ( rule__ArrayBrackets__Group__1__Impl )
            // InternalXcore.g:20119:2: rule__ArrayBrackets__Group__1__Impl
            {
            pushFollow(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:20125:1: rule__ArrayBrackets__Group__1__Impl : ( ']' ) ;
    public final void rule__ArrayBrackets__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:20129:1: ( ( ']' ) )
            // InternalXcore.g:20130:1: ( ']' )
            {
            // InternalXcore.g:20130:1: ( ']' )
            // InternalXcore.g:20131:2: ']'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); 
            }
            match(input,93,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:20141: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:20145:1: ( rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 )
            // InternalXcore.g:20146:2: rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1
            {
            pushFollow(FOLLOW_22);
            rule__XFunctionTypeRef__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:20153: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:20157:1: ( ( ( rule__XFunctionTypeRef__Group_0__0 )? ) )
            // InternalXcore.g:20158:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
            {
            // InternalXcore.g:20158:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
            // InternalXcore.g:20159:2: ( rule__XFunctionTypeRef__Group_0__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0()); 
            }
            // InternalXcore.g:20160:2: ( 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:20160:3: rule__XFunctionTypeRef__Group_0__0
                    {
                    pushFollow(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:20168: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:20172:1: ( rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 )
            // InternalXcore.g:20173:2: rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2
            {
            pushFollow(FOLLOW_22);
            rule__XFunctionTypeRef__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:20180:1: rule__XFunctionTypeRef__Group__1__Impl : ( '=>' ) ;
    public final void rule__XFunctionTypeRef__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:20184:1: ( ( '=>' ) )
            // InternalXcore.g:20185:1: ( '=>' )
            {
            // InternalXcore.g:20185:1: ( '=>' )
            // InternalXcore.g:20186:2: '=>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1()); 
            }
            match(input,70,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:20195: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:20199:1: ( rule__XFunctionTypeRef__Group__2__Impl )
            // InternalXcore.g:20200:2: rule__XFunctionTypeRef__Group__2__Impl
            {
            pushFollow(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:20206: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:20210:1: ( ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) )
            // InternalXcore.g:20211:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
            {
            // InternalXcore.g:20211:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
            // InternalXcore.g:20212:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeAssignment_2()); 
            }
            // InternalXcore.g:20213:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
            // InternalXcore.g:20213:3: rule__XFunctionTypeRef__ReturnTypeAssignment_2
            {
            pushFollow(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:20222: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:20226:1: ( rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 )
            // InternalXcore.g:20227:2: rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1
            {
            pushFollow(FOLLOW_139);
            rule__XFunctionTypeRef__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:20234:1: rule__XFunctionTypeRef__Group_0__0__Impl : ( '(' ) ;
    public final void rule__XFunctionTypeRef__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:20238:1: ( ( '(' ) )
            // InternalXcore.g:20239:1: ( '(' )
            {
            // InternalXcore.g:20239:1: ( '(' )
            // InternalXcore.g:20240:2: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); 
            }
            match(input,85,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:20249: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:20253:1: ( rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 )
            // InternalXcore.g:20254:2: rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2
            {
            pushFollow(FOLLOW_139);
            rule__XFunctionTypeRef__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:20261: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:20265:1: ( ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) )
            // InternalXcore.g:20266:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
            {
            // InternalXcore.g:20266:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
            // InternalXcore.g:20267:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1()); 
            }
            // InternalXcore.g:20268:2: ( 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:20268:3: rule__XFunctionTypeRef__Group_0_1__0
                    {
                    pushFollow(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:20276: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:20280:1: ( rule__XFunctionTypeRef__Group_0__2__Impl )
            // InternalXcore.g:20281:2: rule__XFunctionTypeRef__Group_0__2__Impl
            {
            pushFollow(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:20287:1: rule__XFunctionTypeRef__Group_0__2__Impl : ( ')' ) ;
    public final void rule__XFunctionTypeRef__Group_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:20291:1: ( ( ')' ) )
            // InternalXcore.g:20292:1: ( ')' )
            {
            // InternalXcore.g:20292:1: ( ')' )
            // InternalXcore.g:20293:2: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); 
            }
            match(input,86,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:20303: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:20307:1: ( rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 )
            // InternalXcore.g:20308:2: rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1
            {
            pushFollow(FOLLOW_38);
            rule__XFunctionTypeRef__Group_0_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:20315: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:20319:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) )
            // InternalXcore.g:20320:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
            {
            // InternalXcore.g:20320:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
            // InternalXcore.g:20321:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_0()); 
            }
            // InternalXcore.g:20322:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
            // InternalXcore.g:20322:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0
            {
            pushFollow(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:20330: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:20334:1: ( rule__XFunctionTypeRef__Group_0_1__1__Impl )
            // InternalXcore.g:20335:2: rule__XFunctionTypeRef__Group_0_1__1__Impl
            {
            pushFollow(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:20341: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:20345:1: ( ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) )
            // InternalXcore.g:20346:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
            {
            // InternalXcore.g:20346:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
            // InternalXcore.g:20347:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1_1()); 
            }
            // InternalXcore.g:20348:2: ( 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:20348:3: rule__XFunctionTypeRef__Group_0_1_1__0
            	    {
            	    pushFollow(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:20357: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:20361:1: ( rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 )
            // InternalXcore.g:20362:2: rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1
            {
            pushFollow(FOLLOW_22);
            rule__XFunctionTypeRef__Group_0_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:20369: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:20373:1: ( ( ',' ) )
            // InternalXcore.g:20374:1: ( ',' )
            {
            // InternalXcore.g:20374:1: ( ',' )
            // InternalXcore.g:20375:2: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); 
            }
            match(input,87,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:20384: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:20388:1: ( rule__XFunctionTypeRef__Group_0_1_1__1__Impl )
            // InternalXcore.g:20389:2: rule__XFunctionTypeRef__Group_0_1_1__1__Impl
            {
            pushFollow(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:20395: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:20399:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) )
            // InternalXcore.g:20400:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
            {
            // InternalXcore.g:20400:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
            // InternalXcore.g:20401:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_1_1()); 
            }
            // InternalXcore.g:20402:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
            // InternalXcore.g:20402:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1
            {
            pushFollow(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:20411: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:20415:1: ( rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 )
            // InternalXcore.g:20416:2: rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1
            {
            pushFollow(FOLLOW_66);
            rule__JvmParameterizedTypeReference__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:20423: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:20427:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) )
            // InternalXcore.g:20428:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
            {
            // InternalXcore.g:20428:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
            // InternalXcore.g:20429:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_0()); 
            }
            // InternalXcore.g:20430:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
            // InternalXcore.g:20430:3: rule__JvmParameterizedTypeReference__TypeAssignment_0
            {
            pushFollow(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:20438: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:20442:1: ( rule__JvmParameterizedTypeReference__Group__1__Impl )
            // InternalXcore.g:20443:2: rule__JvmParameterizedTypeReference__Group__1__Impl
            {
            pushFollow(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:20449: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:20453:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) )
            // InternalXcore.g:20454:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
            {
            // InternalXcore.g:20454:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
            // InternalXcore.g:20455:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1()); 
            }
            // InternalXcore.g:20456:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
            int alt183=2;
            alt183 = dfa183.predict(input);
            switch (alt183) {
                case 1 :
                    // InternalXcore.g:20456:3: rule__JvmParameterizedTypeReference__Group_1__0
                    {
                    pushFollow(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:20465: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:20469:1: ( rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 )
            // InternalXcore.g:20470:2: rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1
            {
            pushFollow(FOLLOW_100);
            rule__JvmParameterizedTypeReference__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:20477:1: rule__JvmParameterizedTypeReference__Group_1__0__Impl : ( ( '<' ) ) ;
    public final void rule__JvmParameterizedTypeReference__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:20481:1: ( ( ( '<' ) ) )
            // InternalXcore.g:20482:1: ( ( '<' ) )
            {
            // InternalXcore.g:20482:1: ( ( '<' ) )
            // InternalXcore.g:20483:2: ( '<' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0()); 
            }
            // InternalXcore.g:20484:2: ( '<' )
            // InternalXcore.g:20484:3: '<'
            {
            match(input,66,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:20492: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:20496:1: ( rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 )
            // InternalXcore.g:20497:2: rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2
            {
            pushFollow(FOLLOW_25);
            rule__JvmParameterizedTypeReference__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:20504: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:20508:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) )
            // InternalXcore.g:20509:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
            {
            // InternalXcore.g:20509:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
            // InternalXcore.g:20510:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_1()); 
            }
            // InternalXcore.g:20511:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
            // InternalXcore.g:20511:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1
            {
            pushFollow(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:20519: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:20523:1: ( rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 )
            // InternalXcore.g:20524:2: rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3
            {
            pushFollow(FOLLOW_25);
            rule__JvmParameterizedTypeReference__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:20531: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:20535:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) )
            // InternalXcore.g:20536:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
            {
            // InternalXcore.g:20536:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
            // InternalXcore.g:20537:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_2()); 
            }
            // InternalXcore.g:20538:2: ( 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:20538:3: rule__JvmParameterizedTypeReference__Group_1_2__0
            	    {
            	    pushFollow(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:20546: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:20550:1: ( rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 )
            // InternalXcore.g:20551:2: rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4
            {
            pushFollow(FOLLOW_69);
            rule__JvmParameterizedTypeReference__Group_1__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:20558:1: rule__JvmParameterizedTypeReference__Group_1__3__Impl : ( '>' ) ;
    public final void rule__JvmParameterizedTypeReference__Group_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:20562:1: ( ( '>' ) )
            // InternalXcore.g:20563:1: ( '>' )
            {
            // InternalXcore.g:20563:1: ( '>' )
            // InternalXcore.g:20564:2: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3()); 
            }
            match(input,65,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:20573: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:20577:1: ( rule__JvmParameterizedTypeReference__Group_1__4__Impl )
            // InternalXcore.g:20578:2: rule__JvmParameterizedTypeReference__Group_1__4__Impl
            {
            pushFollow(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:20584: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:20588:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) )
            // InternalXcore.g:20589:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
            {
            // InternalXcore.g:20589:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
            // InternalXcore.g:20590:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4()); 
            }
            // InternalXcore.g:20591:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
            loop185:
            do {
                int alt185=2;
                alt185 = dfa185.predict(input);
                switch (alt185) {
            	case 1 :
            	    // InternalXcore.g:20591:3: rule__JvmParameterizedTypeReference__Group_1_4__0
            	    {
            	    pushFollow(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:20600: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:20604:1: ( rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 )
            // InternalXcore.g:20605:2: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1
            {
            pushFollow(FOLLOW_100);
            rule__JvmParameterizedTypeReference__Group_1_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:20612: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:20616:1: ( ( ',' ) )
            // InternalXcore.g:20617:1: ( ',' )
            {
            // InternalXcore.g:20617:1: ( ',' )
            // InternalXcore.g:20618:2: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); 
            }
            match(input,87,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:20627: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:20631:1: ( rule__JvmParameterizedTypeReference__Group_1_2__1__Impl )
            // InternalXcore.g:20632:2: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl
            {
            pushFollow(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:20638: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:20642:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) )
            // InternalXcore.g:20643:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
            {
            // InternalXcore.g:20643:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
            // InternalXcore.g:20644:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_2_1()); 
            }
            // InternalXcore.g:20645:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
            // InternalXcore.g:20645:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1
            {
            pushFollow(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:20654: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:20658:1: ( rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 )
            // InternalXcore.g:20659:2: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1
            {
            pushFollow(FOLLOW_6);
            rule__JvmParameterizedTypeReference__Group_1_4__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:20666: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:20670:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) )
            // InternalXcore.g:20671:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
            {
            // InternalXcore.g:20671:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
            // InternalXcore.g:20672:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0()); 
            }
            // InternalXcore.g:20673:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
            // InternalXcore.g:20673:3: rule__JvmParameterizedTypeReference__Group_1_4_0__0
            {
            pushFollow(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:20681: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:20685:1: ( rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 )
            // InternalXcore.g:20686:2: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2
            {
            pushFollow(FOLLOW_66);
            rule__JvmParameterizedTypeReference__Group_1_4__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:20693: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:20697:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) )
            // InternalXcore.g:20698:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
            {
            // InternalXcore.g:20698:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
            // InternalXcore.g:20699:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_1_4_1()); 
            }
            // InternalXcore.g:20700:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
            // InternalXcore.g:20700:3: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1
            {
            pushFollow(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:20708: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:20712:1: ( rule__JvmParameterizedTypeReference__Group_1_4__2__Impl )
            // InternalXcore.g:20713:2: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl
            {
            pushFollow(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:20719: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:20723:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) )
            // InternalXcore.g:20724:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
            {
            // InternalXcore.g:20724:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
            // InternalXcore.g:20725:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2()); 
            }
            // InternalXcore.g:20726:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
            int alt186=2;
            alt186 = dfa186.predict(input);
            switch (alt186) {
                case 1 :
                    // InternalXcore.g:20726:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
                    {
                    pushFollow(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:20735: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:20739:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl )
            // InternalXcore.g:20740:2: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl
            {
            pushFollow(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:20746: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:20750:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) )
            // InternalXcore.g:20751:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
            {
            // InternalXcore.g:20751:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
            // InternalXcore.g:20752:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0_0()); 
            }
            // InternalXcore.g:20753:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
            // InternalXcore.g:20753:3: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0
            {
            pushFollow(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:20762: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:20766:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 )
            // InternalXcore.g:20767:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1
            {
            pushFollow(FOLLOW_69);
            rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:20774: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:20778:1: ( ( () ) )
            // InternalXcore.g:20779:1: ( () )
            {
            // InternalXcore.g:20779:1: ( () )
            // InternalXcore.g:20780:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0()); 
            }
            // InternalXcore.g:20781:2: ()
            // InternalXcore.g:20781:3: 
            {
            }

            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:20789: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:20793:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl )
            // InternalXcore.g:20794:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl
            {
            pushFollow(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:20800: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:20804:1: ( ( '.' ) )
            // InternalXcore.g:20805:1: ( '.' )
            {
            // InternalXcore.g:20805:1: ( '.' )
            // InternalXcore.g:20806:2: '.'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1()); 
            }
            match(input,80,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:20816: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:20820:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 )
            // InternalXcore.g:20821:2: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1
            {
            pushFollow(FOLLOW_100);
            rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:20828: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:20832:1: ( ( ( '<' ) ) )
            // InternalXcore.g:20833:1: ( ( '<' ) )
            {
            // InternalXcore.g:20833:1: ( ( '<' ) )
            // InternalXcore.g:20834:2: ( '<' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0()); 
            }
            // InternalXcore.g:20835:2: ( '<' )
            // InternalXcore.g:20835:3: '<'
            {
            match(input,66,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:20843: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:20847:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 )
            // InternalXcore.g:20848:2: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2
            {
            pushFollow(FOLLOW_25);
            rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:20855: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:20859:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) )
            // InternalXcore.g:20860:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
            {
            // InternalXcore.g:20860:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
            // InternalXcore.g:20861:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_1()); 
            }
            // InternalXcore.g:20862:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
            // InternalXcore.g:20862:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1
            {
            pushFollow(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:20870: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:20874:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 )
            // InternalXcore.g:20875:2: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3
            {
            pushFollow(FOLLOW_25);
            rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:20882: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:20886:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) )
            // InternalXcore.g:20887:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
            {
            // InternalXcore.g:20887:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
            // InternalXcore.g:20888:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2_2()); 
            }
            // InternalXcore.g:20889:2: ( 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:20889:3: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0
            	    {
            	    pushFollow(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:20897: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:20901:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl )
            // InternalXcore.g:20902:2: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl
            {
            pushFollow(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:20908: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:20912:1: ( ( '>' ) )
            // InternalXcore.g:20913:1: ( '>' )
            {
            // InternalXcore.g:20913:1: ( '>' )
            // InternalXcore.g:20914:2: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3()); 
            }
            match(input,65,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:20924: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:20928:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 )
            // InternalXcore.g:20929:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1
            {
            pushFollow(FOLLOW_100);
            rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:20936: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:20940:1: ( ( ',' ) )
            // InternalXcore.g:20941:1: ( ',' )
            {
            // InternalXcore.g:20941:1: ( ',' )
            // InternalXcore.g:20942:2: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0()); 
            }
            match(input,87,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:20951: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:20955:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl )
            // InternalXcore.g:20956:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl
            {
            pushFollow(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:20962: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:20966:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) )
            // InternalXcore.g:20967:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
            {
            // InternalXcore.g:20967:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
            // InternalXcore.g:20968:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_2_1()); 
            }
            // InternalXcore.g:20969:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
            // InternalXcore.g:20969:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1
            {
            pushFollow(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:20978: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:20982:1: ( rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 )
            // InternalXcore.g:20983:2: rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1
            {
            pushFollow(FOLLOW_100);
            rule__JvmWildcardTypeReference__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:20990:1: rule__JvmWildcardTypeReference__Group__0__Impl : ( () ) ;
    public final void rule__JvmWildcardTypeReference__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:20994:1: ( ( () ) )
            // InternalXcore.g:20995:1: ( () )
            {
            // InternalXcore.g:20995:1: ( () )
            // InternalXcore.g:20996:2: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0()); 
            }
            // InternalXcore.g:20997:2: ()
            // InternalXcore.g:20997:3: 
            {
            }

            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:21005: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:21009:1: ( rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 )
            // InternalXcore.g:21010:2: rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2
            {
            pushFollow(FOLLOW_68);
            rule__JvmWildcardTypeReference__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:21017:1: rule__JvmWildcardTypeReference__Group__1__Impl : ( '?' ) ;
    public final void rule__JvmWildcardTypeReference__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:21021:1: ( ( '?' ) )
            // InternalXcore.g:21022:1: ( '?' )
            {
            // InternalXcore.g:21022:1: ( '?' )
            // InternalXcore.g:21023:2: '?'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); 
            }
            match(input,17,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:21032: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:21036:1: ( rule__JvmWildcardTypeReference__Group__2__Impl )
            // InternalXcore.g:21037:2: rule__JvmWildcardTypeReference__Group__2__Impl
            {
            pushFollow(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:21043: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:21047:1: ( ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) )
            // InternalXcore.g:21048:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
            {
            // InternalXcore.g:21048:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
            // InternalXcore.g:21049:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getAlternatives_2()); 
            }
            // InternalXcore.g:21050:2: ( 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:21050:3: rule__JvmWildcardTypeReference__Alternatives_2
                    {
                    pushFollow(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:21059: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:21063:1: ( rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 )
            // InternalXcore.g:21064:2: rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1
            {
            pushFollow(FOLLOW_58);
            rule__JvmWildcardTypeReference__Group_2_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:21071: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:21075:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) )
            // InternalXcore.g:21076:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
            {
            // InternalXcore.g:21076:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
            // InternalXcore.g:21077:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_0()); 
            }
            // InternalXcore.g:21078:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
            // InternalXcore.g:21078:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0
            {
            pushFollow(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:21086: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:21090:1: ( rule__JvmWildcardTypeReference__Group_2_0__1__Impl )
            // InternalXcore.g:21091:2: rule__JvmWildcardTypeReference__Group_2_0__1__Impl
            {
            pushFollow(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:21097: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:21101:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) )
            // InternalXcore.g:21102:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
            {
            // InternalXcore.g:21102:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
            // InternalXcore.g:21103:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_1()); 
            }
            // InternalXcore.g:21104:2: ( 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:21104:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1
            	    {
            	    pushFollow(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:21113: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:21117:1: ( rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 )
            // InternalXcore.g:21118:2: rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1
            {
            pushFollow(FOLLOW_58);
            rule__JvmWildcardTypeReference__Group_2_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:21125: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:21129:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) )
            // InternalXcore.g:21130:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
            {
            // InternalXcore.g:21130:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
            // InternalXcore.g:21131:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_0()); 
            }
            // InternalXcore.g:21132:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
            // InternalXcore.g:21132:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0
            {
            pushFollow(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:21140: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:21144:1: ( rule__JvmWildcardTypeReference__Group_2_1__1__Impl )
            // InternalXcore.g:21145:2: rule__JvmWildcardTypeReference__Group_2_1__1__Impl
            {
            pushFollow(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:21151: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:21155:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) )
            // InternalXcore.g:21156:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
            {
            // InternalXcore.g:21156:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
            // InternalXcore.g:21157:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_1()); 
            }
            // InternalXcore.g:21158:2: ( 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:21158:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1
            	    {
            	    pushFollow(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:21167: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:21171:1: ( rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 )
            // InternalXcore.g:21172:2: rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1
            {
            pushFollow(FOLLOW_22);
            rule__JvmUpperBound__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:21179:1: rule__JvmUpperBound__Group__0__Impl : ( 'extends' ) ;
    public final void rule__JvmUpperBound__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:21183:1: ( ( 'extends' ) )
            // InternalXcore.g:21184:1: ( 'extends' )
            {
            // InternalXcore.g:21184:1: ( 'extends' )
            // InternalXcore.g:21185:2: 'extends'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0()); 
            }
            match(input,34,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:21194: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:21198:1: ( rule__JvmUpperBound__Group__1__Impl )
            // InternalXcore.g:21199:2: rule__JvmUpperBound__Group__1__Impl
            {
            pushFollow(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:21205: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:21209:1: ( ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) )
            // InternalXcore.g:21210:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
            {
            // InternalXcore.g:21210:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
            // InternalXcore.g:21211:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceAssignment_1()); 
            }
            // InternalXcore.g:21212:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
            // InternalXcore.g:21212:3: rule__JvmUpperBound__TypeReferenceAssignment_1
            {
            pushFollow(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:21221: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:21225:1: ( rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 )
            // InternalXcore.g:21226:2: rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1
            {
            pushFollow(FOLLOW_22);
            rule__JvmUpperBoundAnded__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:21233:1: rule__JvmUpperBoundAnded__Group__0__Impl : ( '&' ) ;
    public final void rule__JvmUpperBoundAnded__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:21237:1: ( ( '&' ) )
            // InternalXcore.g:21238:1: ( '&' )
            {
            // InternalXcore.g:21238:1: ( '&' )
            // InternalXcore.g:21239:2: '&'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); 
            }
            match(input,91,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:21248: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:21252:1: ( rule__JvmUpperBoundAnded__Group__1__Impl )
            // InternalXcore.g:21253:2: rule__JvmUpperBoundAnded__Group__1__Impl
            {
            pushFollow(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:21259: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:21263:1: ( ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) )
            // InternalXcore.g:21264:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
            {
            // InternalXcore.g:21264:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
            // InternalXcore.g:21265:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceAssignment_1()); 
            }
            // InternalXcore.g:21266:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
            // InternalXcore.g:21266:3: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1
            {
            pushFollow(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:21275: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:21279:1: ( rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 )
            // InternalXcore.g:21280:2: rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1
            {
            pushFollow(FOLLOW_22);
            rule__JvmLowerBound__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:21287:1: rule__JvmLowerBound__Group__0__Impl : ( 'super' ) ;
    public final void rule__JvmLowerBound__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:21291:1: ( ( 'super' ) )
            // InternalXcore.g:21292:1: ( 'super' )
            {
            // InternalXcore.g:21292:1: ( 'super' )
            // InternalXcore.g:21293:2: 'super'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0()); 
            }
            match(input,82,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:21302: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:21306:1: ( rule__JvmLowerBound__Group__1__Impl )
            // InternalXcore.g:21307:2: rule__JvmLowerBound__Group__1__Impl
            {
            pushFollow(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:21313: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:21317:1: ( ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) )
            // InternalXcore.g:21318:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
            {
            // InternalXcore.g:21318:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
            // InternalXcore.g:21319:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceAssignment_1()); 
            }
            // InternalXcore.g:21320:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
            // InternalXcore.g:21320:3: rule__JvmLowerBound__TypeReferenceAssignment_1
            {
            pushFollow(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:21329: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:21333:1: ( rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 )
            // InternalXcore.g:21334:2: rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1
            {
            pushFollow(FOLLOW_22);
            rule__JvmLowerBoundAnded__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:21341:1: rule__JvmLowerBoundAnded__Group__0__Impl : ( '&' ) ;
    public final void rule__JvmLowerBoundAnded__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:21345:1: ( ( '&' ) )
            // InternalXcore.g:21346:1: ( '&' )
            {
            // InternalXcore.g:21346:1: ( '&' )
            // InternalXcore.g:21347:2: '&'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0()); 
            }
            match(input,91,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:21356: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:21360:1: ( rule__JvmLowerBoundAnded__Group__1__Impl )
            // InternalXcore.g:21361:2: rule__JvmLowerBoundAnded__Group__1__Impl
            {
            pushFollow(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:21367: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:21371:1: ( ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) )
            // InternalXcore.g:21372:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
            {
            // InternalXcore.g:21372:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
            // InternalXcore.g:21373:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceAssignment_1()); 
            }
            // InternalXcore.g:21374:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
            // InternalXcore.g:21374:3: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1
            {
            pushFollow(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:21383: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:21387:1: ( rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 )
            // InternalXcore.g:21388:2: rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1
            {
            pushFollow(FOLLOW_69);
            rule__QualifiedNameWithWildcard__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:21395:1: rule__QualifiedNameWithWildcard__Group__0__Impl : ( ruleQualifiedName ) ;
    public final void rule__QualifiedNameWithWildcard__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:21399:1: ( ( ruleQualifiedName ) )
            // InternalXcore.g:21400:1: ( ruleQualifiedName )
            {
            // InternalXcore.g:21400:1: ( ruleQualifiedName )
            // InternalXcore.g:21401:2: ruleQualifiedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); 
            }
            pushFollow(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:21410: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:21414:1: ( rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 )
            // InternalXcore.g:21415:2: rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2
            {
            pushFollow(FOLLOW_140);
            rule__QualifiedNameWithWildcard__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:21422:1: rule__QualifiedNameWithWildcard__Group__1__Impl : ( '.' ) ;
    public final void rule__QualifiedNameWithWildcard__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:21426:1: ( ( '.' ) )
            // InternalXcore.g:21427:1: ( '.' )
            {
            // InternalXcore.g:21427:1: ( '.' )
            // InternalXcore.g:21428:2: '.'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1()); 
            }
            match(input,80,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:21437: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:21441:1: ( rule__QualifiedNameWithWildcard__Group__2__Impl )
            // InternalXcore.g:21442:2: rule__QualifiedNameWithWildcard__Group__2__Impl
            {
            pushFollow(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:21448:1: rule__QualifiedNameWithWildcard__Group__2__Impl : ( '*' ) ;
    public final void rule__QualifiedNameWithWildcard__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:21452:1: ( ( '*' ) )
            // InternalXcore.g:21453:1: ( '*' )
            {
            // InternalXcore.g:21453:1: ( '*' )
            // InternalXcore.g:21454:2: '*'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2()); 
            }
            match(input,18,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:21464: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:21468:1: ( rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 )
            // InternalXcore.g:21469:2: rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1
            {
            pushFollow(FOLLOW_141);
            rule__XImportDeclaration__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:21476:1: rule__XImportDeclaration__Group__0__Impl : ( 'import' ) ;
    public final void rule__XImportDeclaration__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:21480:1: ( ( 'import' ) )
            // InternalXcore.g:21481:1: ( 'import' )
            {
            // InternalXcore.g:21481:1: ( 'import' )
            // InternalXcore.g:21482:2: 'import'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getImportKeyword_0()); 
            }
            match(input,37,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:21491: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:21495:1: ( rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 )
            // InternalXcore.g:21496:2: rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2
            {
            pushFollow(FOLLOW_65);
            rule__XImportDeclaration__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:21503: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:21507:1: ( ( ( rule__XImportDeclaration__Alternatives_1 ) ) )
            // InternalXcore.g:21508:1: ( ( rule__XImportDeclaration__Alternatives_1 ) )
            {
            // InternalXcore.g:21508:1: ( ( rule__XImportDeclaration__Alternatives_1 ) )
            // InternalXcore.g:21509:2: ( rule__XImportDeclaration__Alternatives_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getAlternatives_1()); 
            }
            // InternalXcore.g:21510:2: ( rule__XImportDeclaration__Alternatives_1 )
            // InternalXcore.g:21510:3: rule__XImportDeclaration__Alternatives_1
            {
            pushFollow(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:21518: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:21522:1: ( rule__XImportDeclaration__Group__2__Impl )
            // InternalXcore.g:21523:2: rule__XImportDeclaration__Group__2__Impl
            {
            pushFollow(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:21529:1: rule__XImportDeclaration__Group__2__Impl : ( ( ';' )? ) ;
    public final void rule__XImportDeclaration__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:21533:1: ( ( ( ';' )? ) )
            // InternalXcore.g:21534:1: ( ( ';' )? )
            {
            // InternalXcore.g:21534:1: ( ( ';' )? )
            // InternalXcore.g:21535:2: ( ';' )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_2()); 
            }
            // InternalXcore.g:21536:2: ( ';' )?
            int alt191=2;
            int LA191_0 = input.LA(1);

            if ( (LA191_0==94) ) {
                alt191=1;
            }
            switch (alt191) {
                case 1 :
                    // InternalXcore.g:21536:3: ';'
                    {
                    match(input,94,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:21545: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:21549:1: ( rule__XImportDeclaration__Group_1_0__0__Impl rule__XImportDeclaration__Group_1_0__1 )
            // InternalXcore.g:21550:2: rule__XImportDeclaration__Group_1_0__0__Impl rule__XImportDeclaration__Group_1_0__1
            {
            pushFollow(FOLLOW_142);
            rule__XImportDeclaration__Group_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:21557: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:21561:1: ( ( ( rule__XImportDeclaration__StaticAssignment_1_0_0 ) ) )
            // InternalXcore.g:21562:1: ( ( rule__XImportDeclaration__StaticAssignment_1_0_0 ) )
            {
            // InternalXcore.g:21562:1: ( ( rule__XImportDeclaration__StaticAssignment_1_0_0 ) )
            // InternalXcore.g:21563:2: ( rule__XImportDeclaration__StaticAssignment_1_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_1_0_0()); 
            }
            // InternalXcore.g:21564:2: ( rule__XImportDeclaration__StaticAssignment_1_0_0 )
            // InternalXcore.g:21564:3: rule__XImportDeclaration__StaticAssignment_1_0_0
            {
            pushFollow(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:21572: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:21576:1: ( rule__XImportDeclaration__Group_1_0__1__Impl rule__XImportDeclaration__Group_1_0__2 )
            // InternalXcore.g:21577:2: rule__XImportDeclaration__Group_1_0__1__Impl rule__XImportDeclaration__Group_1_0__2
            {
            pushFollow(FOLLOW_142);
            rule__XImportDeclaration__Group_1_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:21584: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:21588:1: ( ( ( rule__XImportDeclaration__ExtensionAssignment_1_0_1 )? ) )
            // InternalXcore.g:21589:1: ( ( rule__XImportDeclaration__ExtensionAssignment_1_0_1 )? )
            {
            // InternalXcore.g:21589:1: ( ( rule__XImportDeclaration__ExtensionAssignment_1_0_1 )? )
            // InternalXcore.g:21590:2: ( rule__XImportDeclaration__ExtensionAssignment_1_0_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_1_0_1()); 
            }
            // InternalXcore.g:21591:2: ( 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:21591:3: rule__XImportDeclaration__ExtensionAssignment_1_0_1
                    {
                    pushFollow(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:21599: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:21603:1: ( rule__XImportDeclaration__Group_1_0__2__Impl rule__XImportDeclaration__Group_1_0__3 )
            // InternalXcore.g:21604:2: rule__XImportDeclaration__Group_1_0__2__Impl rule__XImportDeclaration__Group_1_0__3
            {
            pushFollow(FOLLOW_143);
            rule__XImportDeclaration__Group_1_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:21611: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:21615:1: ( ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_0_2 ) ) )
            // InternalXcore.g:21616:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_0_2 ) )
            {
            // InternalXcore.g:21616:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_0_2 ) )
            // InternalXcore.g:21617:2: ( rule__XImportDeclaration__ImportedTypeAssignment_1_0_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_0_2()); 
            }
            // InternalXcore.g:21618:2: ( rule__XImportDeclaration__ImportedTypeAssignment_1_0_2 )
            // InternalXcore.g:21618:3: rule__XImportDeclaration__ImportedTypeAssignment_1_0_2
            {
            pushFollow(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:21626: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:21630:1: ( rule__XImportDeclaration__Group_1_0__3__Impl )
            // InternalXcore.g:21631:2: rule__XImportDeclaration__Group_1_0__3__Impl
            {
            pushFollow(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:21637: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:21641:1: ( ( ( rule__XImportDeclaration__Alternatives_1_0_3 ) ) )
            // InternalXcore.g:21642:1: ( ( rule__XImportDeclaration__Alternatives_1_0_3 ) )
            {
            // InternalXcore.g:21642:1: ( ( rule__XImportDeclaration__Alternatives_1_0_3 ) )
            // InternalXcore.g:21643:2: ( rule__XImportDeclaration__Alternatives_1_0_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getAlternatives_1_0_3()); 
            }
            // InternalXcore.g:21644:2: ( rule__XImportDeclaration__Alternatives_1_0_3 )
            // InternalXcore.g:21644:3: rule__XImportDeclaration__Alternatives_1_0_3
            {
            pushFollow(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:21653: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:21657:1: ( rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 )
            // InternalXcore.g:21658:2: rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1
            {
            pushFollow(FOLLOW_69);
            rule__QualifiedNameInStaticImport__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(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:21665:1: rule__QualifiedNameInStaticImport__Group__0__Impl : ( ruleValidID ) ;
    public final void rule__QualifiedNameInStaticImport__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:21669:1: ( ( ruleValidID ) )
            // InternalXcore.g:21670:1: ( ruleValidID )
            {
            // InternalXcore.g:21670:1: ( ruleValidID )
            // InternalXcore.g:21671:2: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0()); 
            }
            pushFollow(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:21680: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:21684:1: ( rule__QualifiedNameInStaticImport__Group__1__Impl )
            // InternalXcore.g:21685:2: rule__QualifiedNameInStaticImport__Group__1__Impl
            {
            pushFollow(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:21691:1: rule__QualifiedNameInStaticImport__Group__1__Impl : ( '.' ) ;
    public final void rule__QualifiedNameInStaticImport__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:21695:1: ( ( '.' ) )
            // InternalXcore.g:21696:1: ( '.' )
            {
            // InternalXcore.g:21696:1: ( '.' )
            // InternalXcore.g:21697:2: '.'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameInStaticImportAccess().getFullStopKeyword_1()); 
            }
            match(input,80,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:21707: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:21712:1: ( ( rule__XDataType__UnorderedGroup_6__0 )? )
            // InternalXcore.g:21713:2: ( rule__XDataType__UnorderedGroup_6__0 )?
            {
            // InternalXcore.g:21713: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(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:21721: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:21726:1: ( ( ({...}? => ( ( ( rule__XDataType__Group_6_0__0 ) ) ) ) | ({...}? => ( ( ( rule__XDataType__Group_6_1__0 ) ) ) ) ) )
            // InternalXcore.g:21727:3: ( ({...}? => ( ( ( rule__XDataType__Group_6_0__0 ) ) ) ) | ({...}? => ( ( ( rule__XDataType__Group_6_1__0 ) ) ) ) )
            {
            // InternalXcore.g:21727: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:21728:3: ({...}? => ( ( ( rule__XDataType__Group_6_0__0 ) ) ) )
                    {
                    // InternalXcore.g:21728:3: ({...}? => ( ( ( rule__XDataType__Group_6_0__0 ) ) ) )
                    // InternalXcore.g:21729:4: {...}? => ( ( ( 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:21729:105: ( ( ( rule__XDataType__Group_6_0__0 ) ) )
                    // InternalXcore.g:21730:5: ( ( rule__XDataType__Group_6_0__0 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXDataTypeAccess().getUnorderedGroup_6(), 0);
                    selected = true;
                    // InternalXcore.g:21736:5: ( ( rule__XDataType__Group_6_0__0 ) )
                    // InternalXcore.g:21737:6: ( rule__XDataType__Group_6_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXDataTypeAccess().getGroup_6_0()); 
                    }
                    // InternalXcore.g:21738:6: ( rule__XDataType__Group_6_0__0 )
                    // InternalXcore.g:21738:7: rule__XDataType__Group_6_0__0
                    {
                    pushFollow(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:21743:3: ({...}? => ( ( ( rule__XDataType__Group_6_1__0 ) ) ) )
                    {
                    // InternalXcore.g:21743:3: ({...}? => ( ( ( rule__XDataType__Group_6_1__0 ) ) ) )
                    // InternalXcore.g:21744:4: {...}? => ( ( ( 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:21744:105: ( ( ( rule__XDataType__Group_6_1__0 ) ) )
                    // InternalXcore.g:21745:5: ( ( rule__XDataType__Group_6_1__0 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXDataTypeAccess().getUnorderedGroup_6(), 1);
                    selected = true;
                    // InternalXcore.g:21751:5: ( ( rule__XDataType__Group_6_1__0 ) )
                    // InternalXcore.g:21752:6: ( rule__XDataType__Group_6_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXDataTypeAccess().getGroup_6_1()); 
                    }
                    // InternalXcore.g:21753:6: ( rule__XDataType__Group_6_1__0 )
                    // InternalXcore.g:21753:7: rule__XDataType__Group_6_1__0
                    {
                    pushFollow(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:21766: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:21770:1: ( rule__XDataType__UnorderedGroup_6__Impl ( rule__XDataType__UnorderedGroup_6__1 )? )
            // InternalXcore.g:21771:2: rule__XDataType__UnorderedGroup_6__Impl ( rule__XDataType__UnorderedGroup_6__1 )?
            {
            pushFollow(FOLLOW_144);
            rule__XDataType__UnorderedGroup_6__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:21772: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(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:21778: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:21782:1: ( rule__XDataType__UnorderedGroup_6__Impl )
            // InternalXcore.g:21783:2: rule__XDataType__UnorderedGroup_6__Impl
            {
            pushFollow(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:21790: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:21795:1: ( ( rule__XAttribute__UnorderedGroup_2__0 )? )
            // InternalXcore.g:21796:2: ( rule__XAttribute__UnorderedGroup_2__0 )?
            {
            // InternalXcore.g:21796: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(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:21804: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:21809: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:21810: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:21810: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:21811:3: ({...}? => ( ( ( rule__XAttribute__UnorderedAssignment_2_0 ) ) ) )
                    {
                    // InternalXcore.g:21811:3: ({...}? => ( ( ( rule__XAttribute__UnorderedAssignment_2_0 ) ) ) )
                    // InternalXcore.g:21812:4: {...}? => ( ( ( 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:21812:106: ( ( ( rule__XAttribute__UnorderedAssignment_2_0 ) ) )
                    // InternalXcore.g:21813:5: ( ( rule__XAttribute__UnorderedAssignment_2_0 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 0);
                    selected = true;
                    // InternalXcore.g:21819:5: ( ( rule__XAttribute__UnorderedAssignment_2_0 ) )
                    // InternalXcore.g:21820:6: ( rule__XAttribute__UnorderedAssignment_2_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAttributeAccess().getUnorderedAssignment_2_0()); 
                    }
                    // InternalXcore.g:21821:6: ( rule__XAttribute__UnorderedAssignment_2_0 )
                    // InternalXcore.g:21821:7: rule__XAttribute__UnorderedAssignment_2_0
                    {
                    pushFollow(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:21826:3: ({...}? => ( ( ( rule__XAttribute__UniqueAssignment_2_1 ) ) ) )
                    {
                    // InternalXcore.g:21826:3: ({...}? => ( ( ( rule__XAttribute__UniqueAssignment_2_1 ) ) ) )
                    // InternalXcore.g:21827:4: {...}? => ( ( ( 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:21827:106: ( ( ( rule__XAttribute__UniqueAssignment_2_1 ) ) )
                    // InternalXcore.g:21828:5: ( ( rule__XAttribute__UniqueAssignment_2_1 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 1);
                    selected = true;
                    // InternalXcore.g:21834:5: ( ( rule__XAttribute__UniqueAssignment_2_1 ) )
                    // InternalXcore.g:21835:6: ( rule__XAttribute__UniqueAssignment_2_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAttributeAccess().getUniqueAssignment_2_1()); 
                    }
                    // InternalXcore.g:21836:6: ( rule__XAttribute__UniqueAssignment_2_1 )
                    // InternalXcore.g:21836:7: rule__XAttribute__UniqueAssignment_2_1
                    {
                    pushFollow(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:21841:3: ({...}? => ( ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) ) ) )
                    {
                    // InternalXcore.g:21841:3: ({...}? => ( ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) ) ) )
                    // InternalXcore.g:21842:4: {...}? => ( ( ( 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:21842:106: ( ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) ) )
                    // InternalXcore.g:21843:5: ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 2);
                    selected = true;
                    // InternalXcore.g:21849:5: ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) )
                    // InternalXcore.g:21850:6: ( rule__XAttribute__ReadonlyAssignment_2_2 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAttributeAccess().getReadonlyAssignment_2_2()); 
                    }
                    // InternalXcore.g:21851:6: ( rule__XAttribute__ReadonlyAssignment_2_2 )
                    // InternalXcore.g:21851:7: rule__XAttribute__ReadonlyAssignment_2_2
                    {
                    pushFollow(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:21856:3: ({...}? => ( ( ( rule__XAttribute__TransientAssignment_2_3 ) ) ) )
                    {
                    // InternalXcore.g:21856:3: ({...}? => ( ( ( rule__XAttribute__TransientAssignment_2_3 ) ) ) )
                    // InternalXcore.g:21857:4: {...}? => ( ( ( 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:21857:106: ( ( ( rule__XAttribute__TransientAssignment_2_3 ) ) )
                    // InternalXcore.g:21858:5: ( ( rule__XAttribute__TransientAssignment_2_3 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 3);
                    selected = true;
                    // InternalXcore.g:21864:5: ( ( rule__XAttribute__TransientAssignment_2_3 ) )
                    // InternalXcore.g:21865:6: ( rule__XAttribute__TransientAssignment_2_3 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAttributeAccess().getTransientAssignment_2_3()); 
                    }
                    // InternalXcore.g:21866:6: ( rule__XAttribute__TransientAssignment_2_3 )
                    // InternalXcore.g:21866:7: rule__XAttribute__TransientAssignment_2_3
                    {
                    pushFollow(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:21871:3: ({...}? => ( ( ( rule__XAttribute__VolatileAssignment_2_4 ) ) ) )
                    {
                    // InternalXcore.g:21871:3: ({...}? => ( ( ( rule__XAttribute__VolatileAssignment_2_4 ) ) ) )
                    // InternalXcore.g:21872:4: {...}? => ( ( ( 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:21872:106: ( ( ( rule__XAttribute__VolatileAssignment_2_4 ) ) )
                    // InternalXcore.g:21873:5: ( ( rule__XAttribute__VolatileAssignment_2_4 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 4);
                    selected = true;
                    // InternalXcore.g:21879:5: ( ( rule__XAttribute__VolatileAssignment_2_4 ) )
                    // InternalXcore.g:21880:6: ( rule__XAttribute__VolatileAssignment_2_4 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAttributeAccess().getVolatileAssignment_2_4()); 
                    }
                    // InternalXcore.g:21881:6: ( rule__XAttribute__VolatileAssignment_2_4 )
                    // InternalXcore.g:21881:7: rule__XAttribute__VolatileAssignment_2_4
                    {
                    pushFollow(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:21886:3: ({...}? => ( ( ( rule__XAttribute__UnsettableAssignment_2_5 ) ) ) )
                    {
                    // InternalXcore.g:21886:3: ({...}? => ( ( ( rule__XAttribute__UnsettableAssignment_2_5 ) ) ) )
                    // InternalXcore.g:21887:4: {...}? => ( ( ( 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:21887:106: ( ( ( rule__XAttribute__UnsettableAssignment_2_5 ) ) )
                    // InternalXcore.g:21888:5: ( ( rule__XAttribute__UnsettableAssignment_2_5 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 5);
                    selected = true;
                    // InternalXcore.g:21894:5: ( ( rule__XAttribute__UnsettableAssignment_2_5 ) )
                    // InternalXcore.g:21895:6: ( rule__XAttribute__UnsettableAssignment_2_5 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAttributeAccess().getUnsettableAssignment_2_5()); 
                    }
                    // InternalXcore.g:21896:6: ( rule__XAttribute__UnsettableAssignment_2_5 )
                    // InternalXcore.g:21896:7: rule__XAttribute__UnsettableAssignment_2_5
                    {
                    pushFollow(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:21901:3: ({...}? => ( ( ( rule__XAttribute__DerivedAssignment_2_6 ) ) ) )
                    {
                    // InternalXcore.g:21901:3: ({...}? => ( ( ( rule__XAttribute__DerivedAssignment_2_6 ) ) ) )
                    // InternalXcore.g:21902:4: {...}? => ( ( ( 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:21902:106: ( ( ( rule__XAttribute__DerivedAssignment_2_6 ) ) )
                    // InternalXcore.g:21903:5: ( ( rule__XAttribute__DerivedAssignment_2_6 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 6);
                    selected = true;
                    // InternalXcore.g:21909:5: ( ( rule__XAttribute__DerivedAssignment_2_6 ) )
                    // InternalXcore.g:21910:6: ( rule__XAttribute__DerivedAssignment_2_6 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAttributeAccess().getDerivedAssignment_2_6()); 
                    }
                    // InternalXcore.g:21911:6: ( rule__XAttribute__DerivedAssignment_2_6 )
                    // InternalXcore.g:21911:7: rule__XAttribute__DerivedAssignment_2_6
                    {
                    pushFollow(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:21916:3: ({...}? => ( ( ( rule__XAttribute__IDAssignment_2_7 ) ) ) )
                    {
                    // InternalXcore.g:21916:3: ({...}? => ( ( ( rule__XAttribute__IDAssignment_2_7 ) ) ) )
                    // InternalXcore.g:21917:4: {...}? => ( ( ( 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:21917:106: ( ( ( rule__XAttribute__IDAssignment_2_7 ) ) )
                    // InternalXcore.g:21918:5: ( ( rule__XAttribute__IDAssignment_2_7 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 7);
                    selected = true;
                    // InternalXcore.g:21924:5: ( ( rule__XAttribute__IDAssignment_2_7 ) )
                    // InternalXcore.g:21925:6: ( rule__XAttribute__IDAssignment_2_7 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAttributeAccess().getIDAssignment_2_7()); 
                    }
                    // InternalXcore.g:21926:6: ( rule__XAttribute__IDAssignment_2_7 )
                    // InternalXcore.g:21926:7: rule__XAttribute__IDAssignment_2_7
                    {
                    pushFollow(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:21939: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:21943:1: ( rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__1 )? )
            // InternalXcore.g:21944:2: rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__1 )?
            {
            pushFollow(FOLLOW_145);
            rule__XAttribute__UnorderedGroup_2__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:21945: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(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:21951: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:21955:1: ( rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__2 )? )
            // InternalXcore.g:21956:2: rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__2 )?
            {
            pushFollow(FOLLOW_145);
            rule__XAttribute__UnorderedGroup_2__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:21957: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(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:21963: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:21967:1: ( rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__3 )? )
            // InternalXcore.g:21968:2: rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__3 )?
            {
            pushFollow(FOLLOW_145);
            rule__XAttribute__UnorderedGroup_2__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:21969: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(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:21975: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:21979:1: ( rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__4 )? )
            // InternalXcore.g:21980:2: rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__4 )?
            {
            pushFollow(FOLLOW_145);
            rule__XAttribute__UnorderedGroup_2__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:21981: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(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:21987: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:21991:1: ( rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__5 )? )
            // InternalXcore.g:21992:2: rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__5 )?
            {
            pushFollow(FOLLOW_145);
            rule__XAttribute__UnorderedGroup_2__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:21993: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(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:21999: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:22003:1: ( rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__6 )? )
            // InternalXcore.g:22004:2: rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__6 )?
            {
            pushFollow(FOLLOW_145);
            rule__XAttribute__UnorderedGroup_2__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:22005: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(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:22011: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:22015:1: ( rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__7 )? )
            // InternalXcore.g:22016:2: rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__7 )?
            {
            pushFollow(FOLLOW_145);
            rule__XAttribute__UnorderedGroup_2__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:22017: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(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:22023: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:22027:1: ( rule__XAttribute__UnorderedGroup_2__Impl )
            // InternalXcore.g:22028:2: rule__XAttribute__UnorderedGroup_2__Impl
            {
            pushFollow(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:22035: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:22040:1: ( ( rule__XAttribute__UnorderedGroup_7__0 )? )
            // InternalXcore.g:22041:2: ( rule__XAttribute__UnorderedGroup_7__0 )?
            {
            // InternalXcore.g:22041: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(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:22049: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:22054: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:22055: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:22055: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:22056:3: ({...}? => ( ( ( rule__XAttribute__Group_7_0__0 ) ) ) )
                    {
                    // InternalXcore.g:22056:3: ({...}? => ( ( ( rule__XAttribute__Group_7_0__0 ) ) ) )
                    // InternalXcore.g:22057:4: {...}? => ( ( ( 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:22057:106: ( ( ( rule__XAttribute__Group_7_0__0 ) ) )
                    // InternalXcore.g:22058:5: ( ( rule__XAttribute__Group_7_0__0 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 0);
                    selected = true;
                    // InternalXcore.g:22064:5: ( ( rule__XAttribute__Group_7_0__0 ) )
                    // InternalXcore.g:22065:6: ( rule__XAttribute__Group_7_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAttributeAccess().getGroup_7_0()); 
                    }
                    // InternalXcore.g:22066:6: ( rule__XAttribute__Group_7_0__0 )
                    // InternalXcore.g:22066:7: rule__XAttribute__Group_7_0__0
                    {
                    pushFollow(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:22071:3: ({...}? => ( ( ( rule__XAttribute__Group_7_1__0 ) ) ) )
                    {
                    // InternalXcore.g:22071:3: ({...}? => ( ( ( rule__XAttribute__Group_7_1__0 ) ) ) )
                    // InternalXcore.g:22072:4: {...}? => ( ( ( 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:22072:106: ( ( ( rule__XAttribute__Group_7_1__0 ) ) )
                    // InternalXcore.g:22073:5: ( ( rule__XAttribute__Group_7_1__0 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 1);
                    selected = true;
                    // InternalXcore.g:22079:5: ( ( rule__XAttribute__Group_7_1__0 ) )
                    // InternalXcore.g:22080:6: ( rule__XAttribute__Group_7_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAttributeAccess().getGroup_7_1()); 
                    }
                    // InternalXcore.g:22081:6: ( rule__XAttribute__Group_7_1__0 )
                    // InternalXcore.g:22081:7: rule__XAttribute__Group_7_1__0
                    {
                    pushFollow(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:22086:3: ({...}? => ( ( ( rule__XAttribute__Group_7_2__0 ) ) ) )
                    {
                    // InternalXcore.g:22086:3: ({...}? => ( ( ( rule__XAttribute__Group_7_2__0 ) ) ) )
                    // InternalXcore.g:22087:4: {...}? => ( ( ( 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:22087:106: ( ( ( rule__XAttribute__Group_7_2__0 ) ) )
                    // InternalXcore.g:22088:5: ( ( rule__XAttribute__Group_7_2__0 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 2);
                    selected = true;
                    // InternalXcore.g:22094:5: ( ( rule__XAttribute__Group_7_2__0 ) )
                    // InternalXcore.g:22095:6: ( rule__XAttribute__Group_7_2__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAttributeAccess().getGroup_7_2()); 
                    }
                    // InternalXcore.g:22096:6: ( rule__XAttribute__Group_7_2__0 )
                    // InternalXcore.g:22096:7: rule__XAttribute__Group_7_2__0
                    {
                    pushFollow(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:22101:3: ({...}? => ( ( ( rule__XAttribute__Group_7_3__0 ) ) ) )
                    {
                    // InternalXcore.g:22101:3: ({...}? => ( ( ( rule__XAttribute__Group_7_3__0 ) ) ) )
                    // InternalXcore.g:22102:4: {...}? => ( ( ( 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:22102:106: ( ( ( rule__XAttribute__Group_7_3__0 ) ) )
                    // InternalXcore.g:22103:5: ( ( rule__XAttribute__Group_7_3__0 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 3);
                    selected = true;
                    // InternalXcore.g:22109:5: ( ( rule__XAttribute__Group_7_3__0 ) )
                    // InternalXcore.g:22110:6: ( rule__XAttribute__Group_7_3__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAttributeAccess().getGroup_7_3()); 
                    }
                    // InternalXcore.g:22111:6: ( rule__XAttribute__Group_7_3__0 )
                    // InternalXcore.g:22111:7: rule__XAttribute__Group_7_3__0
                    {
                    pushFollow(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:22124: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:22128:1: ( rule__XAttribute__UnorderedGroup_7__Impl ( rule__XAttribute__UnorderedGroup_7__1 )? )
            // InternalXcore.g:22129:2: rule__XAttribute__UnorderedGroup_7__Impl ( rule__XAttribute__UnorderedGroup_7__1 )?
            {
            pushFollow(FOLLOW_146);
            rule__XAttribute__UnorderedGroup_7__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:22130: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(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:22136: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:22140:1: ( rule__XAttribute__UnorderedGroup_7__Impl ( rule__XAttribute__UnorderedGroup_7__2 )? )
            // InternalXcore.g:22141:2: rule__XAttribute__UnorderedGroup_7__Impl ( rule__XAttribute__UnorderedGroup_7__2 )?
            {
            pushFollow(FOLLOW_146);
            rule__XAttribute__UnorderedGroup_7__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:22142: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(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:22148: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:22152:1: ( rule__XAttribute__UnorderedGroup_7__Impl ( rule__XAttribute__UnorderedGroup_7__3 )? )
            // InternalXcore.g:22153:2: rule__XAttribute__UnorderedGroup_7__Impl ( rule__XAttribute__UnorderedGroup_7__3 )?
            {
            pushFollow(FOLLOW_146);
            rule__XAttribute__UnorderedGroup_7__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:22154: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(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:22160: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:22164:1: ( rule__XAttribute__UnorderedGroup_7__Impl )
            // InternalXcore.g:22165:2: rule__XAttribute__UnorderedGroup_7__Impl
            {
            pushFollow(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:22172: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:22177:1: ( ( rule__XReference__UnorderedGroup_3__0 )? )
            // InternalXcore.g:22178:2: ( rule__XReference__UnorderedGroup_3__0 )?
            {
            // InternalXcore.g:22178: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(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:22186: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:22191: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:22192: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:22192: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:22193:3: ({...}? => ( ( ( rule__XReference__UnorderedAssignment_3_0 ) ) ) )
                    {
                    // InternalXcore.g:22193:3: ({...}? => ( ( ( rule__XReference__UnorderedAssignment_3_0 ) ) ) )
                    // InternalXcore.g:22194:4: {...}? => ( ( ( 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:22194:106: ( ( ( rule__XReference__UnorderedAssignment_3_0 ) ) )
                    // InternalXcore.g:22195:5: ( ( rule__XReference__UnorderedAssignment_3_0 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 0);
                    selected = true;
                    // InternalXcore.g:22201:5: ( ( rule__XReference__UnorderedAssignment_3_0 ) )
                    // InternalXcore.g:22202:6: ( rule__XReference__UnorderedAssignment_3_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getUnorderedAssignment_3_0()); 
                    }
                    // InternalXcore.g:22203:6: ( rule__XReference__UnorderedAssignment_3_0 )
                    // InternalXcore.g:22203:7: rule__XReference__UnorderedAssignment_3_0
                    {
                    pushFollow(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:22208:3: ({...}? => ( ( ( rule__XReference__UniqueAssignment_3_1 ) ) ) )
                    {
                    // InternalXcore.g:22208:3: ({...}? => ( ( ( rule__XReference__UniqueAssignment_3_1 ) ) ) )
                    // InternalXcore.g:22209:4: {...}? => ( ( ( 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:22209:106: ( ( ( rule__XReference__UniqueAssignment_3_1 ) ) )
                    // InternalXcore.g:22210:5: ( ( rule__XReference__UniqueAssignment_3_1 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 1);
                    selected = true;
                    // InternalXcore.g:22216:5: ( ( rule__XReference__UniqueAssignment_3_1 ) )
                    // InternalXcore.g:22217:6: ( rule__XReference__UniqueAssignment_3_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getUniqueAssignment_3_1()); 
                    }
                    // InternalXcore.g:22218:6: ( rule__XReference__UniqueAssignment_3_1 )
                    // InternalXcore.g:22218:7: rule__XReference__UniqueAssignment_3_1
                    {
                    pushFollow(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:22223:3: ({...}? => ( ( ( rule__XReference__ReadonlyAssignment_3_2 ) ) ) )
                    {
                    // InternalXcore.g:22223:3: ({...}? => ( ( ( rule__XReference__ReadonlyAssignment_3_2 ) ) ) )
                    // InternalXcore.g:22224:4: {...}? => ( ( ( 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:22224:106: ( ( ( rule__XReference__ReadonlyAssignment_3_2 ) ) )
                    // InternalXcore.g:22225:5: ( ( rule__XReference__ReadonlyAssignment_3_2 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 2);
                    selected = true;
                    // InternalXcore.g:22231:5: ( ( rule__XReference__ReadonlyAssignment_3_2 ) )
                    // InternalXcore.g:22232:6: ( rule__XReference__ReadonlyAssignment_3_2 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getReadonlyAssignment_3_2()); 
                    }
                    // InternalXcore.g:22233:6: ( rule__XReference__ReadonlyAssignment_3_2 )
                    // InternalXcore.g:22233:7: rule__XReference__ReadonlyAssignment_3_2
                    {
                    pushFollow(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:22238:3: ({...}? => ( ( ( rule__XReference__TransientAssignment_3_3 ) ) ) )
                    {
                    // InternalXcore.g:22238:3: ({...}? => ( ( ( rule__XReference__TransientAssignment_3_3 ) ) ) )
                    // InternalXcore.g:22239:4: {...}? => ( ( ( 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:22239:106: ( ( ( rule__XReference__TransientAssignment_3_3 ) ) )
                    // InternalXcore.g:22240:5: ( ( rule__XReference__TransientAssignment_3_3 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 3);
                    selected = true;
                    // InternalXcore.g:22246:5: ( ( rule__XReference__TransientAssignment_3_3 ) )
                    // InternalXcore.g:22247:6: ( rule__XReference__TransientAssignment_3_3 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getTransientAssignment_3_3()); 
                    }
                    // InternalXcore.g:22248:6: ( rule__XReference__TransientAssignment_3_3 )
                    // InternalXcore.g:22248:7: rule__XReference__TransientAssignment_3_3
                    {
                    pushFollow(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:22253:3: ({...}? => ( ( ( rule__XReference__VolatileAssignment_3_4 ) ) ) )
                    {
                    // InternalXcore.g:22253:3: ({...}? => ( ( ( rule__XReference__VolatileAssignment_3_4 ) ) ) )
                    // InternalXcore.g:22254:4: {...}? => ( ( ( 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:22254:106: ( ( ( rule__XReference__VolatileAssignment_3_4 ) ) )
                    // InternalXcore.g:22255:5: ( ( rule__XReference__VolatileAssignment_3_4 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 4);
                    selected = true;
                    // InternalXcore.g:22261:5: ( ( rule__XReference__VolatileAssignment_3_4 ) )
                    // InternalXcore.g:22262:6: ( rule__XReference__VolatileAssignment_3_4 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getVolatileAssignment_3_4()); 
                    }
                    // InternalXcore.g:22263:6: ( rule__XReference__VolatileAssignment_3_4 )
                    // InternalXcore.g:22263:7: rule__XReference__VolatileAssignment_3_4
                    {
                    pushFollow(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:22268:3: ({...}? => ( ( ( rule__XReference__UnsettableAssignment_3_5 ) ) ) )
                    {
                    // InternalXcore.g:22268:3: ({...}? => ( ( ( rule__XReference__UnsettableAssignment_3_5 ) ) ) )
                    // InternalXcore.g:22269:4: {...}? => ( ( ( 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:22269:106: ( ( ( rule__XReference__UnsettableAssignment_3_5 ) ) )
                    // InternalXcore.g:22270:5: ( ( rule__XReference__UnsettableAssignment_3_5 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 5);
                    selected = true;
                    // InternalXcore.g:22276:5: ( ( rule__XReference__UnsettableAssignment_3_5 ) )
                    // InternalXcore.g:22277:6: ( rule__XReference__UnsettableAssignment_3_5 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getUnsettableAssignment_3_5()); 
                    }
                    // InternalXcore.g:22278:6: ( rule__XReference__UnsettableAssignment_3_5 )
                    // InternalXcore.g:22278:7: rule__XReference__UnsettableAssignment_3_5
                    {
                    pushFollow(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:22283:3: ({...}? => ( ( ( rule__XReference__DerivedAssignment_3_6 ) ) ) )
                    {
                    // InternalXcore.g:22283:3: ({...}? => ( ( ( rule__XReference__DerivedAssignment_3_6 ) ) ) )
                    // InternalXcore.g:22284:4: {...}? => ( ( ( 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:22284:106: ( ( ( rule__XReference__DerivedAssignment_3_6 ) ) )
                    // InternalXcore.g:22285:5: ( ( rule__XReference__DerivedAssignment_3_6 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 6);
                    selected = true;
                    // InternalXcore.g:22291:5: ( ( rule__XReference__DerivedAssignment_3_6 ) )
                    // InternalXcore.g:22292:6: ( rule__XReference__DerivedAssignment_3_6 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getDerivedAssignment_3_6()); 
                    }
                    // InternalXcore.g:22293:6: ( rule__XReference__DerivedAssignment_3_6 )
                    // InternalXcore.g:22293:7: rule__XReference__DerivedAssignment_3_6
                    {
                    pushFollow(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:22306: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:22310:1: ( rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__1 )? )
            // InternalXcore.g:22311:2: rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__1 )?
            {
            pushFollow(FOLLOW_147);
            rule__XReference__UnorderedGroup_3__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:22312: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(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:22318: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:22322:1: ( rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__2 )? )
            // InternalXcore.g:22323:2: rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__2 )?
            {
            pushFollow(FOLLOW_147);
            rule__XReference__UnorderedGroup_3__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:22324: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(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:22330: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:22334:1: ( rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__3 )? )
            // InternalXcore.g:22335:2: rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__3 )?
            {
            pushFollow(FOLLOW_147);
            rule__XReference__UnorderedGroup_3__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:22336: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(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:22342: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:22346:1: ( rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__4 )? )
            // InternalXcore.g:22347:2: rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__4 )?
            {
            pushFollow(FOLLOW_147);
            rule__XReference__UnorderedGroup_3__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:22348: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(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:22354: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:22358:1: ( rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__5 )? )
            // InternalXcore.g:22359:2: rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__5 )?
            {
            pushFollow(FOLLOW_147);
            rule__XReference__UnorderedGroup_3__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:22360: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(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:22366: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:22370:1: ( rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__6 )? )
            // InternalXcore.g:22371:2: rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__6 )?
            {
            pushFollow(FOLLOW_147);
            rule__XReference__UnorderedGroup_3__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:22372: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(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:22378: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:22382:1: ( rule__XReference__UnorderedGroup_3__Impl )
            // InternalXcore.g:22383:2: rule__XReference__UnorderedGroup_3__Impl
            {
            pushFollow(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:22390: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:22395:1: ( ( rule__XReference__UnorderedGroup_9__0 )? )
            // InternalXcore.g:22396:2: ( rule__XReference__UnorderedGroup_9__0 )?
            {
            // InternalXcore.g:22396: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(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:22404: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:22409: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:22410: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:22410: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:22411:3: ({...}? => ( ( ( rule__XReference__Group_9_0__0 ) ) ) )
                    {
                    // InternalXcore.g:22411:3: ({...}? => ( ( ( rule__XReference__Group_9_0__0 ) ) ) )
                    // InternalXcore.g:22412:4: {...}? => ( ( ( 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:22412:106: ( ( ( rule__XReference__Group_9_0__0 ) ) )
                    // InternalXcore.g:22413:5: ( ( rule__XReference__Group_9_0__0 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 0);
                    selected = true;
                    // InternalXcore.g:22419:5: ( ( rule__XReference__Group_9_0__0 ) )
                    // InternalXcore.g:22420:6: ( rule__XReference__Group_9_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getGroup_9_0()); 
                    }
                    // InternalXcore.g:22421:6: ( rule__XReference__Group_9_0__0 )
                    // InternalXcore.g:22421:7: rule__XReference__Group_9_0__0
                    {
                    pushFollow(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:22426:3: ({...}? => ( ( ( rule__XReference__Group_9_1__0 ) ) ) )
                    {
                    // InternalXcore.g:22426:3: ({...}? => ( ( ( rule__XReference__Group_9_1__0 ) ) ) )
                    // InternalXcore.g:22427:4: {...}? => ( ( ( 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:22427:106: ( ( ( rule__XReference__Group_9_1__0 ) ) )
                    // InternalXcore.g:22428:5: ( ( rule__XReference__Group_9_1__0 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 1);
                    selected = true;
                    // InternalXcore.g:22434:5: ( ( rule__XReference__Group_9_1__0 ) )
                    // InternalXcore.g:22435:6: ( rule__XReference__Group_9_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getGroup_9_1()); 
                    }
                    // InternalXcore.g:22436:6: ( rule__XReference__Group_9_1__0 )
                    // InternalXcore.g:22436:7: rule__XReference__Group_9_1__0
                    {
                    pushFollow(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:22441:3: ({...}? => ( ( ( rule__XReference__Group_9_2__0 ) ) ) )
                    {
                    // InternalXcore.g:22441:3: ({...}? => ( ( ( rule__XReference__Group_9_2__0 ) ) ) )
                    // InternalXcore.g:22442:4: {...}? => ( ( ( 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:22442:106: ( ( ( rule__XReference__Group_9_2__0 ) ) )
                    // InternalXcore.g:22443:5: ( ( rule__XReference__Group_9_2__0 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 2);
                    selected = true;
                    // InternalXcore.g:22449:5: ( ( rule__XReference__Group_9_2__0 ) )
                    // InternalXcore.g:22450:6: ( rule__XReference__Group_9_2__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getGroup_9_2()); 
                    }
                    // InternalXcore.g:22451:6: ( rule__XReference__Group_9_2__0 )
                    // InternalXcore.g:22451:7: rule__XReference__Group_9_2__0
                    {
                    pushFollow(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:22456:3: ({...}? => ( ( ( rule__XReference__Group_9_3__0 ) ) ) )
                    {
                    // InternalXcore.g:22456:3: ({...}? => ( ( ( rule__XReference__Group_9_3__0 ) ) ) )
                    // InternalXcore.g:22457:4: {...}? => ( ( ( 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:22457:106: ( ( ( rule__XReference__Group_9_3__0 ) ) )
                    // InternalXcore.g:22458:5: ( ( rule__XReference__Group_9_3__0 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 3);
                    selected = true;
                    // InternalXcore.g:22464:5: ( ( rule__XReference__Group_9_3__0 ) )
                    // InternalXcore.g:22465:6: ( rule__XReference__Group_9_3__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getGroup_9_3()); 
                    }
                    // InternalXcore.g:22466:6: ( rule__XReference__Group_9_3__0 )
                    // InternalXcore.g:22466:7: rule__XReference__Group_9_3__0
                    {
                    pushFollow(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:22479: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:22483:1: ( rule__XReference__UnorderedGroup_9__Impl ( rule__XReference__UnorderedGroup_9__1 )? )
            // InternalXcore.g:22484:2: rule__XReference__UnorderedGroup_9__Impl ( rule__XReference__UnorderedGroup_9__1 )?
            {
            pushFollow(FOLLOW_146);
            rule__XReference__UnorderedGroup_9__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:22485: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(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:22491: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:22495:1: ( rule__XReference__UnorderedGroup_9__Impl ( rule__XReference__UnorderedGroup_9__2 )? )
            // InternalXcore.g:22496:2: rule__XReference__UnorderedGroup_9__Impl ( rule__XReference__UnorderedGroup_9__2 )?
            {
            pushFollow(FOLLOW_146);
            rule__XReference__UnorderedGroup_9__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:22497: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(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:22503: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:22507:1: ( rule__XReference__UnorderedGroup_9__Impl ( rule__XReference__UnorderedGroup_9__3 )? )
            // InternalXcore.g:22508:2: rule__XReference__UnorderedGroup_9__Impl ( rule__XReference__UnorderedGroup_9__3 )?
            {
            pushFollow(FOLLOW_146);
            rule__XReference__UnorderedGroup_9__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:22509: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(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:22515: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:22519:1: ( rule__XReference__UnorderedGroup_9__Impl )
            // InternalXcore.g:22520:2: rule__XReference__UnorderedGroup_9__Impl
            {
            pushFollow(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:22527:1: rule__XPackage__AnnotationsAssignment_1 : ( ruleXAnnotation ) ;
    public final void rule__XPackage__AnnotationsAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:22531:1: ( ( ruleXAnnotation ) )
            // InternalXcore.g:22532:2: ( ruleXAnnotation )
            {
            // InternalXcore.g:22532:2: ( ruleXAnnotation )
            // InternalXcore.g:22533:3: ruleXAnnotation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getAnnotationsXAnnotationParserRuleCall_1_0()); 
            }
            pushFollow(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:22542:1: rule__XPackage__NameAssignment_3 : ( ruleQualifiedName ) ;
    public final void rule__XPackage__NameAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:22546:1: ( ( ruleQualifiedName ) )
            // InternalXcore.g:22547:2: ( ruleQualifiedName )
            {
            // InternalXcore.g:22547:2: ( ruleQualifiedName )
            // InternalXcore.g:22548:3: ruleQualifiedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getNameQualifiedNameParserRuleCall_3_0()); 
            }
            pushFollow(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:22557:1: rule__XPackage__ImportDirectivesAssignment_4 : ( ruleXImportDirective ) ;
    public final void rule__XPackage__ImportDirectivesAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:22561:1: ( ( ruleXImportDirective ) )
            // InternalXcore.g:22562:2: ( ruleXImportDirective )
            {
            // InternalXcore.g:22562:2: ( ruleXImportDirective )
            // InternalXcore.g:22563:3: ruleXImportDirective
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getImportDirectivesXImportDirectiveParserRuleCall_4_0()); 
            }
            pushFollow(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:22572:1: rule__XPackage__AnnotationDirectivesAssignment_5 : ( ruleXAnnotationDirective ) ;
    public final void rule__XPackage__AnnotationDirectivesAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:22576:1: ( ( ruleXAnnotationDirective ) )
            // InternalXcore.g:22577:2: ( ruleXAnnotationDirective )
            {
            // InternalXcore.g:22577:2: ( ruleXAnnotationDirective )
            // InternalXcore.g:22578:3: ruleXAnnotationDirective
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getAnnotationDirectivesXAnnotationDirectiveParserRuleCall_5_0()); 
            }
            pushFollow(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:22587:1: rule__XPackage__ClassifiersAssignment_6 : ( ruleXClassifier ) ;
    public final void rule__XPackage__ClassifiersAssignment_6() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:22591:1: ( ( ruleXClassifier ) )
            // InternalXcore.g:22592:2: ( ruleXClassifier )
            {
            // InternalXcore.g:22592:2: ( ruleXClassifier )
            // InternalXcore.g:22593:3: ruleXClassifier
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getClassifiersXClassifierParserRuleCall_6_0()); 
            }
            pushFollow(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:22602:1: rule__XAnnotation__SourceAssignment_1 : ( ( ruleXQualifiedName ) ) ;
    public final void rule__XAnnotation__SourceAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:22606:1: ( ( ( ruleXQualifiedName ) ) )
            // InternalXcore.g:22607:2: ( ( ruleXQualifiedName ) )
            {
            // InternalXcore.g:22607:2: ( ( ruleXQualifiedName ) )
            // InternalXcore.g:22608:3: ( ruleXQualifiedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getSourceXAnnotationDirectiveCrossReference_1_0()); 
            }
            // InternalXcore.g:22609:3: ( ruleXQualifiedName )
            // InternalXcore.g:22610:4: ruleXQualifiedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getSourceXAnnotationDirectiveXQualifiedNameParserRuleCall_1_0_1()); 
            }
            pushFollow(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:22621:1: rule__XAnnotation__DetailsAssignment_2_1 : ( ruleXStringToStringMapEntry ) ;
    public final void rule__XAnnotation__DetailsAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:22625:1: ( ( ruleXStringToStringMapEntry ) )
            // InternalXcore.g:22626:2: ( ruleXStringToStringMapEntry )
            {
            // InternalXcore.g:22626:2: ( ruleXStringToStringMapEntry )
            // InternalXcore.g:22627:3: ruleXStringToStringMapEntry
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getDetailsXStringToStringMapEntryParserRuleCall_2_1_0()); 
            }
            pushFollow(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:22636: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:22640:1: ( ( ruleXStringToStringMapEntry ) )
            // InternalXcore.g:22641:2: ( ruleXStringToStringMapEntry )
            {
            // InternalXcore.g:22641:2: ( ruleXStringToStringMapEntry )
            // InternalXcore.g:22642:3: ruleXStringToStringMapEntry
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getDetailsXStringToStringMapEntryParserRuleCall_2_2_1_0()); 
            }
            pushFollow(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:22651:1: rule__XStringToStringMapEntry__KeyAssignment_0 : ( ruleQualifiedName ) ;
    public final void rule__XStringToStringMapEntry__KeyAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:22655:1: ( ( ruleQualifiedName ) )
            // InternalXcore.g:22656:2: ( ruleQualifiedName )
            {
            // InternalXcore.g:22656:2: ( ruleQualifiedName )
            // InternalXcore.g:22657:3: ruleQualifiedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXStringToStringMapEntryAccess().getKeyQualifiedNameParserRuleCall_0_0()); 
            }
            pushFollow(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:22666:1: rule__XStringToStringMapEntry__ValueAssignment_2 : ( RULE_STRING ) ;
    public final void rule__XStringToStringMapEntry__ValueAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:22670:1: ( ( RULE_STRING ) )
            // InternalXcore.g:22671:2: ( RULE_STRING )
            {
            // InternalXcore.g:22671:2: ( RULE_STRING )
            // InternalXcore.g:22672:3: RULE_STRING
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXStringToStringMapEntryAccess().getValueSTRINGTerminalRuleCall_2_0()); 
            }
            match(input,RULE_STRING,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:22681:1: rule__XImportDirective__ImportedNamespaceAssignment_2_0 : ( ruleQualifiedNameWithWildcard ) ;
    public final void rule__XImportDirective__ImportedNamespaceAssignment_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:22685:1: ( ( ruleQualifiedNameWithWildcard ) )
            // InternalXcore.g:22686:2: ( ruleQualifiedNameWithWildcard )
            {
            // InternalXcore.g:22686:2: ( ruleQualifiedNameWithWildcard )
            // InternalXcore.g:22687:3: ruleQualifiedNameWithWildcard
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDirectiveAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_2_0_0()); 
            }
            pushFollow(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:22696:1: rule__XImportDirective__ImportedObjectAssignment_2_1 : ( ( ruleQualifiedName ) ) ;
    public final void rule__XImportDirective__ImportedObjectAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:22700:1: ( ( ( ruleQualifiedName ) ) )
            // InternalXcore.g:22701:2: ( ( ruleQualifiedName ) )
            {
            // InternalXcore.g:22701:2: ( ( ruleQualifiedName ) )
            // InternalXcore.g:22702:3: ( ruleQualifiedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDirectiveAccess().getImportedObjectEObjectCrossReference_2_1_0()); 
            }
            // InternalXcore.g:22703:3: ( ruleQualifiedName )
            // InternalXcore.g:22704:4: ruleQualifiedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDirectiveAccess().getImportedObjectEObjectQualifiedNameParserRuleCall_2_1_0_1()); 
            }
            pushFollow(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:22715: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:22719:1: ( ( RULE_STRING ) )
            // InternalXcore.g:22720:2: ( RULE_STRING )
            {
            // InternalXcore.g:22720:2: ( RULE_STRING )
            // InternalXcore.g:22721:3: RULE_STRING
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationDirectiveAccess().getSourceURISTRINGTerminalRuleCall_0_0_1_0()); 
            }
            match(input,RULE_STRING,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:22730:1: rule__XAnnotationDirective__NameAssignment_2 : ( ruleValidID ) ;
    public final void rule__XAnnotationDirective__NameAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:22734:1: ( ( ruleValidID ) )
            // InternalXcore.g:22735:2: ( ruleValidID )
            {
            // InternalXcore.g:22735:2: ( ruleValidID )
            // InternalXcore.g:22736:3: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationDirectiveAccess().getNameValidIDParserRuleCall_2_0()); 
            }
            pushFollow(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:22745:1: rule__XDataType__AnnotationsAssignment_0 : ( ruleXAnnotation ) ;
    public final void rule__XDataType__AnnotationsAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:22749:1: ( ( ruleXAnnotation ) )
            // InternalXcore.g:22750:2: ( ruleXAnnotation )
            {
            // InternalXcore.g:22750:2: ( ruleXAnnotation )
            // InternalXcore.g:22751:3: ruleXAnnotation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getAnnotationsXAnnotationParserRuleCall_0_0()); 
            }
            pushFollow(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:22760:1: rule__XDataType__NameAssignment_2 : ( RULE_ID ) ;
    public final void rule__XDataType__NameAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:22764:1: ( ( RULE_ID ) )
            // InternalXcore.g:22765:2: ( RULE_ID )
            {
            // InternalXcore.g:22765:2: ( RULE_ID )
            // InternalXcore.g:22766:3: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getNameIDTerminalRuleCall_2_0()); 
            }
            match(input,RULE_ID,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:22775:1: rule__XDataType__TypeParametersAssignment_3_1 : ( ruleXTypeParameter ) ;
    public final void rule__XDataType__TypeParametersAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:22779:1: ( ( ruleXTypeParameter ) )
            // InternalXcore.g:22780:2: ( ruleXTypeParameter )
            {
            // InternalXcore.g:22780:2: ( ruleXTypeParameter )
            // InternalXcore.g:22781:3: ruleXTypeParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getTypeParametersXTypeParameterParserRuleCall_3_1_0()); 
            }
            pushFollow(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:22790: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:22794:1: ( ( ruleXTypeParameter ) )
            // InternalXcore.g:22795:2: ( ruleXTypeParameter )
            {
            // InternalXcore.g:22795:2: ( ruleXTypeParameter )
            // InternalXcore.g:22796:3: ruleXTypeParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getTypeParametersXTypeParameterParserRuleCall_3_2_1_0()); 
            }
            pushFollow(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:22805:1: rule__XDataType__InstanceTypeAssignment_5 : ( ruleJvmTypeReference ) ;
    public final void rule__XDataType__InstanceTypeAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:22809:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:22810:2: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:22810:2: ( ruleJvmTypeReference )
            // InternalXcore.g:22811:3: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getInstanceTypeJvmTypeReferenceParserRuleCall_5_0()); 
            }
            pushFollow(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:22820: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:22824:1: ( ( ( 'create' ) ) )
            // InternalXcore.g:22825:2: ( ( 'create' ) )
            {
            // InternalXcore.g:22825:2: ( ( 'create' ) )
            // InternalXcore.g:22826:3: ( 'create' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getSerializableCreateKeyword_6_0_0_0()); 
            }
            // InternalXcore.g:22827:3: ( 'create' )
            // InternalXcore.g:22828:4: 'create'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getSerializableCreateKeyword_6_0_0_0()); 
            }
            match(input,31,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:22839: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:22843:1: ( ( ruleXBlockExpression ) )
            // InternalXcore.g:22844:2: ( ruleXBlockExpression )
            {
            // InternalXcore.g:22844:2: ( ruleXBlockExpression )
            // InternalXcore.g:22845:3: ruleXBlockExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getCreateBodyXBlockExpressionParserRuleCall_6_0_1_0()); 
            }
            pushFollow(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:22854: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:22858:1: ( ( ruleXBlockExpression ) )
            // InternalXcore.g:22859:2: ( ruleXBlockExpression )
            {
            // InternalXcore.g:22859:2: ( ruleXBlockExpression )
            // InternalXcore.g:22860:3: ruleXBlockExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getConvertBodyXBlockExpressionParserRuleCall_6_1_1_0()); 
            }
            pushFollow(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:22869:1: rule__XEnum__AnnotationsAssignment_0 : ( ruleXAnnotation ) ;
    public final void rule__XEnum__AnnotationsAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:22873:1: ( ( ruleXAnnotation ) )
            // InternalXcore.g:22874:2: ( ruleXAnnotation )
            {
            // InternalXcore.g:22874:2: ( ruleXAnnotation )
            // InternalXcore.g:22875:3: ruleXAnnotation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getAnnotationsXAnnotationParserRuleCall_0_0()); 
            }
            pushFollow(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:22884:1: rule__XEnum__NameAssignment_2 : ( RULE_ID ) ;
    public final void rule__XEnum__NameAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:22888:1: ( ( RULE_ID ) )
            // InternalXcore.g:22889:2: ( RULE_ID )
            {
            // InternalXcore.g:22889:2: ( RULE_ID )
            // InternalXcore.g:22890:3: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getNameIDTerminalRuleCall_2_0()); 
            }
            match(input,RULE_ID,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:22899:1: rule__XEnum__LiteralsAssignment_4_0 : ( ruleXEnumLiteral ) ;
    public final void rule__XEnum__LiteralsAssignment_4_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:22903:1: ( ( ruleXEnumLiteral ) )
            // InternalXcore.g:22904:2: ( ruleXEnumLiteral )
            {
            // InternalXcore.g:22904:2: ( ruleXEnumLiteral )
            // InternalXcore.g:22905:3: ruleXEnumLiteral
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getLiteralsXEnumLiteralParserRuleCall_4_0_0()); 
            }
            pushFollow(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:22914: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:22918:1: ( ( ruleXEnumLiteral ) )
            // InternalXcore.g:22919:2: ( ruleXEnumLiteral )
            {
            // InternalXcore.g:22919:2: ( ruleXEnumLiteral )
            // InternalXcore.g:22920:3: ruleXEnumLiteral
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getLiteralsXEnumLiteralParserRuleCall_4_1_1_0()); 
            }
            pushFollow(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:22929:1: rule__XEnumLiteral__AnnotationsAssignment_0 : ( ruleXAnnotation ) ;
    public final void rule__XEnumLiteral__AnnotationsAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:22933:1: ( ( ruleXAnnotation ) )
            // InternalXcore.g:22934:2: ( ruleXAnnotation )
            {
            // InternalXcore.g:22934:2: ( ruleXAnnotation )
            // InternalXcore.g:22935:3: ruleXAnnotation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getAnnotationsXAnnotationParserRuleCall_0_0()); 
            }
            pushFollow(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:22944:1: rule__XEnumLiteral__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__XEnumLiteral__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:22948:1: ( ( RULE_ID ) )
            // InternalXcore.g:22949:2: ( RULE_ID )
            {
            // InternalXcore.g:22949:2: ( RULE_ID )
            // InternalXcore.g:22950:3: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getNameIDTerminalRuleCall_1_0()); 
            }
            match(input,RULE_ID,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:22959:1: rule__XEnumLiteral__LiteralAssignment_2_1 : ( RULE_STRING ) ;
    public final void rule__XEnumLiteral__LiteralAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:22963:1: ( ( RULE_STRING ) )
            // InternalXcore.g:22964:2: ( RULE_STRING )
            {
            // InternalXcore.g:22964:2: ( RULE_STRING )
            // InternalXcore.g:22965:3: RULE_STRING
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getLiteralSTRINGTerminalRuleCall_2_1_0()); 
            }
            match(input,RULE_STRING,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:22974:1: rule__XEnumLiteral__ValueAssignment_3_1 : ( ruleSignedInt ) ;
    public final void rule__XEnumLiteral__ValueAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:22978:1: ( ( ruleSignedInt ) )
            // InternalXcore.g:22979:2: ( ruleSignedInt )
            {
            // InternalXcore.g:22979:2: ( ruleSignedInt )
            // InternalXcore.g:22980:3: ruleSignedInt
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getValueSignedIntParserRuleCall_3_1_0()); 
            }
            pushFollow(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:22989:1: rule__XClass__AnnotationsAssignment_1 : ( ruleXAnnotation ) ;
    public final void rule__XClass__AnnotationsAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:22993:1: ( ( ruleXAnnotation ) )
            // InternalXcore.g:22994:2: ( ruleXAnnotation )
            {
            // InternalXcore.g:22994:2: ( ruleXAnnotation )
            // InternalXcore.g:22995:3: ruleXAnnotation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getAnnotationsXAnnotationParserRuleCall_1_0()); 
            }
            pushFollow(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:23004: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:23008:1: ( ( ( 'abstract' ) ) )
            // InternalXcore.g:23009:2: ( ( 'abstract' ) )
            {
            // InternalXcore.g:23009:2: ( ( 'abstract' ) )
            // InternalXcore.g:23010:3: ( 'abstract' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getAbstractAbstractKeyword_2_0_0_0()); 
            }
            // InternalXcore.g:23011:3: ( 'abstract' )
            // InternalXcore.g:23012:4: 'abstract'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getAbstractAbstractKeyword_2_0_0_0()); 
            }
            match(input,24,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:23023:1: rule__XClass__InterfaceAssignment_2_1 : ( ( 'interface' ) ) ;
    public final void rule__XClass__InterfaceAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23027:1: ( ( ( 'interface' ) ) )
            // InternalXcore.g:23028:2: ( ( 'interface' ) )
            {
            // InternalXcore.g:23028:2: ( ( 'interface' ) )
            // InternalXcore.g:23029:3: ( 'interface' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getInterfaceInterfaceKeyword_2_1_0()); 
            }
            // InternalXcore.g:23030:3: ( 'interface' )
            // InternalXcore.g:23031:4: 'interface'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getInterfaceInterfaceKeyword_2_1_0()); 
            }
            match(input,39,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:23042:1: rule__XClass__NameAssignment_3 : ( RULE_ID ) ;
    public final void rule__XClass__NameAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23046:1: ( ( RULE_ID ) )
            // InternalXcore.g:23047:2: ( RULE_ID )
            {
            // InternalXcore.g:23047:2: ( RULE_ID )
            // InternalXcore.g:23048:3: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getNameIDTerminalRuleCall_3_0()); 
            }
            match(input,RULE_ID,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:23057:1: rule__XClass__TypeParametersAssignment_4_1 : ( ruleXTypeParameter ) ;
    public final void rule__XClass__TypeParametersAssignment_4_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23061:1: ( ( ruleXTypeParameter ) )
            // InternalXcore.g:23062:2: ( ruleXTypeParameter )
            {
            // InternalXcore.g:23062:2: ( ruleXTypeParameter )
            // InternalXcore.g:23063:3: ruleXTypeParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getTypeParametersXTypeParameterParserRuleCall_4_1_0()); 
            }
            pushFollow(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:23072: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:23076:1: ( ( ruleXTypeParameter ) )
            // InternalXcore.g:23077:2: ( ruleXTypeParameter )
            {
            // InternalXcore.g:23077:2: ( ruleXTypeParameter )
            // InternalXcore.g:23078:3: ruleXTypeParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getTypeParametersXTypeParameterParserRuleCall_4_2_1_0()); 
            }
            pushFollow(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:23087:1: rule__XClass__SuperTypesAssignment_5_1 : ( ruleXGenericType ) ;
    public final void rule__XClass__SuperTypesAssignment_5_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23091:1: ( ( ruleXGenericType ) )
            // InternalXcore.g:23092:2: ( ruleXGenericType )
            {
            // InternalXcore.g:23092:2: ( ruleXGenericType )
            // InternalXcore.g:23093:3: ruleXGenericType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getSuperTypesXGenericTypeParserRuleCall_5_1_0()); 
            }
            pushFollow(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:23102: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:23106:1: ( ( ruleXGenericType ) )
            // InternalXcore.g:23107:2: ( ruleXGenericType )
            {
            // InternalXcore.g:23107:2: ( ruleXGenericType )
            // InternalXcore.g:23108:3: ruleXGenericType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getSuperTypesXGenericTypeParserRuleCall_5_2_1_0()); 
            }
            pushFollow(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:23117:1: rule__XClass__InstanceTypeAssignment_6_1 : ( ruleJvmTypeReference ) ;
    public final void rule__XClass__InstanceTypeAssignment_6_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23121:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:23122:2: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:23122:2: ( ruleJvmTypeReference )
            // InternalXcore.g:23123:3: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getInstanceTypeJvmTypeReferenceParserRuleCall_6_1_0()); 
            }
            pushFollow(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:23132:1: rule__XClass__MembersAssignment_8 : ( ruleXMember ) ;
    public final void rule__XClass__MembersAssignment_8() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23136:1: ( ( ruleXMember ) )
            // InternalXcore.g:23137:2: ( ruleXMember )
            {
            // InternalXcore.g:23137:2: ( ruleXMember )
            // InternalXcore.g:23138:3: ruleXMember
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getMembersXMemberParserRuleCall_8_0()); 
            }
            pushFollow(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:23147:1: rule__XAttribute__AnnotationsAssignment_1 : ( ruleXAnnotation ) ;
    public final void rule__XAttribute__AnnotationsAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23151:1: ( ( ruleXAnnotation ) )
            // InternalXcore.g:23152:2: ( ruleXAnnotation )
            {
            // InternalXcore.g:23152:2: ( ruleXAnnotation )
            // InternalXcore.g:23153:3: ruleXAnnotation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getAnnotationsXAnnotationParserRuleCall_1_0()); 
            }
            pushFollow(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:23162:1: rule__XAttribute__UnorderedAssignment_2_0 : ( ( 'unordered' ) ) ;
    public final void rule__XAttribute__UnorderedAssignment_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23166:1: ( ( ( 'unordered' ) ) )
            // InternalXcore.g:23167:2: ( ( 'unordered' ) )
            {
            // InternalXcore.g:23167:2: ( ( 'unordered' ) )
            // InternalXcore.g:23168:3: ( 'unordered' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getUnorderedUnorderedKeyword_2_0_0()); 
            }
            // InternalXcore.g:23169:3: ( 'unordered' )
            // InternalXcore.g:23170:4: 'unordered'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getUnorderedUnorderedKeyword_2_0_0()); 
            }
            match(input,51,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:23181:1: rule__XAttribute__UniqueAssignment_2_1 : ( ( 'unique' ) ) ;
    public final void rule__XAttribute__UniqueAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23185:1: ( ( ( 'unique' ) ) )
            // InternalXcore.g:23186:2: ( ( 'unique' ) )
            {
            // InternalXcore.g:23186:2: ( ( 'unique' ) )
            // InternalXcore.g:23187:3: ( 'unique' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getUniqueUniqueKeyword_2_1_0()); 
            }
            // InternalXcore.g:23188:3: ( 'unique' )
            // InternalXcore.g:23189:4: 'unique'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getUniqueUniqueKeyword_2_1_0()); 
            }
            match(input,50,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:23200:1: rule__XAttribute__ReadonlyAssignment_2_2 : ( ( 'readonly' ) ) ;
    public final void rule__XAttribute__ReadonlyAssignment_2_2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23204:1: ( ( ( 'readonly' ) ) )
            // InternalXcore.g:23205:2: ( ( 'readonly' ) )
            {
            // InternalXcore.g:23205:2: ( ( 'readonly' ) )
            // InternalXcore.g:23206:3: ( 'readonly' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getReadonlyReadonlyKeyword_2_2_0()); 
            }
            // InternalXcore.g:23207:3: ( 'readonly' )
            // InternalXcore.g:23208:4: 'readonly'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getReadonlyReadonlyKeyword_2_2_0()); 
            }
            match(input,44,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:23219:1: rule__XAttribute__TransientAssignment_2_3 : ( ( 'transient' ) ) ;
    public final void rule__XAttribute__TransientAssignment_2_3() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23223:1: ( ( ( 'transient' ) ) )
            // InternalXcore.g:23224:2: ( ( 'transient' ) )
            {
            // InternalXcore.g:23224:2: ( ( 'transient' ) )
            // InternalXcore.g:23225:3: ( 'transient' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getTransientTransientKeyword_2_3_0()); 
            }
            // InternalXcore.g:23226:3: ( 'transient' )
            // InternalXcore.g:23227:4: 'transient'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getTransientTransientKeyword_2_3_0()); 
            }
            match(input,49,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:23238:1: rule__XAttribute__VolatileAssignment_2_4 : ( ( 'volatile' ) ) ;
    public final void rule__XAttribute__VolatileAssignment_2_4() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23242:1: ( ( ( 'volatile' ) ) )
            // InternalXcore.g:23243:2: ( ( 'volatile' ) )
            {
            // InternalXcore.g:23243:2: ( ( 'volatile' ) )
            // InternalXcore.g:23244:3: ( 'volatile' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getVolatileVolatileKeyword_2_4_0()); 
            }
            // InternalXcore.g:23245:3: ( 'volatile' )
            // InternalXcore.g:23246:4: 'volatile'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getVolatileVolatileKeyword_2_4_0()); 
            }
            match(input,53,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:23257:1: rule__XAttribute__UnsettableAssignment_2_5 : ( ( 'unsettable' ) ) ;
    public final void rule__XAttribute__UnsettableAssignment_2_5() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23261:1: ( ( ( 'unsettable' ) ) )
            // InternalXcore.g:23262:2: ( ( 'unsettable' ) )
            {
            // InternalXcore.g:23262:2: ( ( 'unsettable' ) )
            // InternalXcore.g:23263:3: ( 'unsettable' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getUnsettableUnsettableKeyword_2_5_0()); 
            }
            // InternalXcore.g:23264:3: ( 'unsettable' )
            // InternalXcore.g:23265:4: 'unsettable'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getUnsettableUnsettableKeyword_2_5_0()); 
            }
            match(input,52,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:23276:1: rule__XAttribute__DerivedAssignment_2_6 : ( ( 'derived' ) ) ;
    public final void rule__XAttribute__DerivedAssignment_2_6() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23280:1: ( ( ( 'derived' ) ) )
            // InternalXcore.g:23281:2: ( ( 'derived' ) )
            {
            // InternalXcore.g:23281:2: ( ( 'derived' ) )
            // InternalXcore.g:23282:3: ( 'derived' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getDerivedDerivedKeyword_2_6_0()); 
            }
            // InternalXcore.g:23283:3: ( 'derived' )
            // InternalXcore.g:23284:4: 'derived'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getDerivedDerivedKeyword_2_6_0()); 
            }
            match(input,32,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:23295:1: rule__XAttribute__IDAssignment_2_7 : ( ( 'id' ) ) ;
    public final void rule__XAttribute__IDAssignment_2_7() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23299:1: ( ( ( 'id' ) ) )
            // InternalXcore.g:23300:2: ( ( 'id' ) )
            {
            // InternalXcore.g:23300:2: ( ( 'id' ) )
            // InternalXcore.g:23301:3: ( 'id' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getIDIdKeyword_2_7_0()); 
            }
            // InternalXcore.g:23302:3: ( 'id' )
            // InternalXcore.g:23303:4: 'id'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getIDIdKeyword_2_7_0()); 
            }
            match(input,36,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:23314:1: rule__XAttribute__TypeAssignment_3 : ( ruleXGenericType ) ;
    public final void rule__XAttribute__TypeAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23318:1: ( ( ruleXGenericType ) )
            // InternalXcore.g:23319:2: ( ruleXGenericType )
            {
            // InternalXcore.g:23319:2: ( ruleXGenericType )
            // InternalXcore.g:23320:3: ruleXGenericType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getTypeXGenericTypeParserRuleCall_3_0()); 
            }
            pushFollow(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:23329:1: rule__XAttribute__MultiplicityAssignment_4 : ( ruleXMultiplicity ) ;
    public final void rule__XAttribute__MultiplicityAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23333:1: ( ( ruleXMultiplicity ) )
            // InternalXcore.g:23334:2: ( ruleXMultiplicity )
            {
            // InternalXcore.g:23334:2: ( ruleXMultiplicity )
            // InternalXcore.g:23335:3: ruleXMultiplicity
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getMultiplicityXMultiplicityParserRuleCall_4_0()); 
            }
            pushFollow(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:23344:1: rule__XAttribute__NameAssignment_5 : ( RULE_ID ) ;
    public final void rule__XAttribute__NameAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23348:1: ( ( RULE_ID ) )
            // InternalXcore.g:23349:2: ( RULE_ID )
            {
            // InternalXcore.g:23349:2: ( RULE_ID )
            // InternalXcore.g:23350:3: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getNameIDTerminalRuleCall_5_0()); 
            }
            match(input,RULE_ID,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:23359:1: rule__XAttribute__DefaultValueLiteralAssignment_6_1 : ( RULE_STRING ) ;
    public final void rule__XAttribute__DefaultValueLiteralAssignment_6_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23363:1: ( ( RULE_STRING ) )
            // InternalXcore.g:23364:2: ( RULE_STRING )
            {
            // InternalXcore.g:23364:2: ( RULE_STRING )
            // InternalXcore.g:23365:3: RULE_STRING
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getDefaultValueLiteralSTRINGTerminalRuleCall_6_1_0()); 
            }
            match(input,RULE_STRING,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:23374: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:23378:1: ( ( ruleXBlockExpression ) )
            // InternalXcore.g:23379:2: ( ruleXBlockExpression )
            {
            // InternalXcore.g:23379:2: ( ruleXBlockExpression )
            // InternalXcore.g:23380:3: ruleXBlockExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getGetBodyXBlockExpressionParserRuleCall_7_0_1_0()); 
            }
            pushFollow(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:23389: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:23393:1: ( ( ruleXBlockExpression ) )
            // InternalXcore.g:23394:2: ( ruleXBlockExpression )
            {
            // InternalXcore.g:23394:2: ( ruleXBlockExpression )
            // InternalXcore.g:23395:3: ruleXBlockExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getSetBodyXBlockExpressionParserRuleCall_7_1_1_0()); 
            }
            pushFollow(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:23404: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:23408:1: ( ( ruleXBlockExpression ) )
            // InternalXcore.g:23409:2: ( ruleXBlockExpression )
            {
            // InternalXcore.g:23409:2: ( ruleXBlockExpression )
            // InternalXcore.g:23410:3: ruleXBlockExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getIsSetBodyXBlockExpressionParserRuleCall_7_2_1_0()); 
            }
            pushFollow(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:23419: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:23423:1: ( ( ruleXBlockExpression ) )
            // InternalXcore.g:23424:2: ( ruleXBlockExpression )
            {
            // InternalXcore.g:23424:2: ( ruleXBlockExpression )
            // InternalXcore.g:23425:3: ruleXBlockExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getUnsetBodyXBlockExpressionParserRuleCall_7_3_1_0()); 
            }
            pushFollow(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:23434:1: rule__XReference__AnnotationsAssignment_1 : ( ruleXAnnotation ) ;
    public final void rule__XReference__AnnotationsAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23438:1: ( ( ruleXAnnotation ) )
            // InternalXcore.g:23439:2: ( ruleXAnnotation )
            {
            // InternalXcore.g:23439:2: ( ruleXAnnotation )
            // InternalXcore.g:23440:3: ruleXAnnotation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getAnnotationsXAnnotationParserRuleCall_1_0()); 
            }
            pushFollow(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:23449: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:23453:1: ( ( ( 'contains' ) ) )
            // InternalXcore.g:23454:2: ( ( 'contains' ) )
            {
            // InternalXcore.g:23454:2: ( ( 'contains' ) )
            // InternalXcore.g:23455:3: ( 'contains' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getContainmentContainsKeyword_2_0_0_0()); 
            }
            // InternalXcore.g:23456:3: ( 'contains' )
            // InternalXcore.g:23457:4: 'contains'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getContainmentContainsKeyword_2_0_0_0()); 
            }
            match(input,29,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:23468: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:23472:1: ( ( ( 'resolving' ) ) )
            // InternalXcore.g:23473:2: ( ( 'resolving' ) )
            {
            // InternalXcore.g:23473:2: ( ( 'resolving' ) )
            // InternalXcore.g:23474:3: ( 'resolving' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getResolveProxiesResolvingKeyword_2_0_1_0()); 
            }
            // InternalXcore.g:23475:3: ( 'resolving' )
            // InternalXcore.g:23476:4: 'resolving'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getResolveProxiesResolvingKeyword_2_0_1_0()); 
            }
            match(input,46,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:23487: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:23491:1: ( ( ( 'resolving' ) ) )
            // InternalXcore.g:23492:2: ( ( 'resolving' ) )
            {
            // InternalXcore.g:23492:2: ( ( 'resolving' ) )
            // InternalXcore.g:23493:3: ( 'resolving' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getResolveProxiesResolvingKeyword_2_1_0_0()); 
            }
            // InternalXcore.g:23494:3: ( 'resolving' )
            // InternalXcore.g:23495:4: 'resolving'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getResolveProxiesResolvingKeyword_2_1_0_0()); 
            }
            match(input,46,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:23506: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:23510:1: ( ( ( 'contains' ) ) )
            // InternalXcore.g:23511:2: ( ( 'contains' ) )
            {
            // InternalXcore.g:23511:2: ( ( 'contains' ) )
            // InternalXcore.g:23512:3: ( 'contains' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getContainmentContainsKeyword_2_1_1_0()); 
            }
            // InternalXcore.g:23513:3: ( 'contains' )
            // InternalXcore.g:23514:4: 'contains'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getContainmentContainsKeyword_2_1_1_0()); 
            }
            match(input,29,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:23525: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:23529:1: ( ( ( 'container' ) ) )
            // InternalXcore.g:23530:2: ( ( 'container' ) )
            {
            // InternalXcore.g:23530:2: ( ( 'container' ) )
            // InternalXcore.g:23531:3: ( 'container' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getContainerContainerKeyword_2_2_0_0()); 
            }
            // InternalXcore.g:23532:3: ( 'container' )
            // InternalXcore.g:23533:4: 'container'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getContainerContainerKeyword_2_2_0_0()); 
            }
            match(input,28,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:23544: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:23548:1: ( ( ( 'resolving' ) ) )
            // InternalXcore.g:23549:2: ( ( 'resolving' ) )
            {
            // InternalXcore.g:23549:2: ( ( 'resolving' ) )
            // InternalXcore.g:23550:3: ( 'resolving' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getResolveProxiesResolvingKeyword_2_2_1_0()); 
            }
            // InternalXcore.g:23551:3: ( 'resolving' )
            // InternalXcore.g:23552:4: 'resolving'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getResolveProxiesResolvingKeyword_2_2_1_0()); 
            }
            match(input,46,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:23563: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:23567:1: ( ( ( 'resolving' ) ) )
            // InternalXcore.g:23568:2: ( ( 'resolving' ) )
            {
            // InternalXcore.g:23568:2: ( ( 'resolving' ) )
            // InternalXcore.g:23569:3: ( 'resolving' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getResolveProxiesResolvingKeyword_2_3_0_0()); 
            }
            // InternalXcore.g:23570:3: ( 'resolving' )
            // InternalXcore.g:23571:4: 'resolving'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getResolveProxiesResolvingKeyword_2_3_0_0()); 
            }
            match(input,46,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:23582: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:23586:1: ( ( ( 'container' ) ) )
            // InternalXcore.g:23587:2: ( ( 'container' ) )
            {
            // InternalXcore.g:23587:2: ( ( 'container' ) )
            // InternalXcore.g:23588:3: ( 'container' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getContainerContainerKeyword_2_3_1_0()); 
            }
            // InternalXcore.g:23589:3: ( 'container' )
            // InternalXcore.g:23590:4: 'container'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getContainerContainerKeyword_2_3_1_0()); 
            }
            match(input,28,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:23601: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:23605:1: ( ( ( 'local' ) ) )
            // InternalXcore.g:23606:2: ( ( 'local' ) )
            {
            // InternalXcore.g:23606:2: ( ( 'local' ) )
            // InternalXcore.g:23607:3: ( 'local' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getLocalLocalKeyword_2_4_1_0()); 
            }
            // InternalXcore.g:23608:3: ( 'local' )
            // InternalXcore.g:23609:4: 'local'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getLocalLocalKeyword_2_4_1_0()); 
            }
            match(input,40,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:23620: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:23624:1: ( ( ( 'local' ) ) )
            // InternalXcore.g:23625:2: ( ( 'local' ) )
            {
            // InternalXcore.g:23625:2: ( ( 'local' ) )
            // InternalXcore.g:23626:3: ( 'local' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getLocalLocalKeyword_2_5_0_0()); 
            }
            // InternalXcore.g:23627:3: ( 'local' )
            // InternalXcore.g:23628:4: 'local'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getLocalLocalKeyword_2_5_0_0()); 
            }
            match(input,40,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:23639:1: rule__XReference__UnorderedAssignment_3_0 : ( ( 'unordered' ) ) ;
    public final void rule__XReference__UnorderedAssignment_3_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23643:1: ( ( ( 'unordered' ) ) )
            // InternalXcore.g:23644:2: ( ( 'unordered' ) )
            {
            // InternalXcore.g:23644:2: ( ( 'unordered' ) )
            // InternalXcore.g:23645:3: ( 'unordered' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getUnorderedUnorderedKeyword_3_0_0()); 
            }
            // InternalXcore.g:23646:3: ( 'unordered' )
            // InternalXcore.g:23647:4: 'unordered'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getUnorderedUnorderedKeyword_3_0_0()); 
            }
            match(input,51,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:23658:1: rule__XReference__UniqueAssignment_3_1 : ( ( 'unique' ) ) ;
    public final void rule__XReference__UniqueAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23662:1: ( ( ( 'unique' ) ) )
            // InternalXcore.g:23663:2: ( ( 'unique' ) )
            {
            // InternalXcore.g:23663:2: ( ( 'unique' ) )
            // InternalXcore.g:23664:3: ( 'unique' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getUniqueUniqueKeyword_3_1_0()); 
            }
            // InternalXcore.g:23665:3: ( 'unique' )
            // InternalXcore.g:23666:4: 'unique'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getUniqueUniqueKeyword_3_1_0()); 
            }
            match(input,50,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:23677:1: rule__XReference__ReadonlyAssignment_3_2 : ( ( 'readonly' ) ) ;
    public final void rule__XReference__ReadonlyAssignment_3_2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23681:1: ( ( ( 'readonly' ) ) )
            // InternalXcore.g:23682:2: ( ( 'readonly' ) )
            {
            // InternalXcore.g:23682:2: ( ( 'readonly' ) )
            // InternalXcore.g:23683:3: ( 'readonly' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getReadonlyReadonlyKeyword_3_2_0()); 
            }
            // InternalXcore.g:23684:3: ( 'readonly' )
            // InternalXcore.g:23685:4: 'readonly'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getReadonlyReadonlyKeyword_3_2_0()); 
            }
            match(input,44,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:23696:1: rule__XReference__TransientAssignment_3_3 : ( ( 'transient' ) ) ;
    public final void rule__XReference__TransientAssignment_3_3() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23700:1: ( ( ( 'transient' ) ) )
            // InternalXcore.g:23701:2: ( ( 'transient' ) )
            {
            // InternalXcore.g:23701:2: ( ( 'transient' ) )
            // InternalXcore.g:23702:3: ( 'transient' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getTransientTransientKeyword_3_3_0()); 
            }
            // InternalXcore.g:23703:3: ( 'transient' )
            // InternalXcore.g:23704:4: 'transient'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getTransientTransientKeyword_3_3_0()); 
            }
            match(input,49,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:23715:1: rule__XReference__VolatileAssignment_3_4 : ( ( 'volatile' ) ) ;
    public final void rule__XReference__VolatileAssignment_3_4() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23719:1: ( ( ( 'volatile' ) ) )
            // InternalXcore.g:23720:2: ( ( 'volatile' ) )
            {
            // InternalXcore.g:23720:2: ( ( 'volatile' ) )
            // InternalXcore.g:23721:3: ( 'volatile' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getVolatileVolatileKeyword_3_4_0()); 
            }
            // InternalXcore.g:23722:3: ( 'volatile' )
            // InternalXcore.g:23723:4: 'volatile'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getVolatileVolatileKeyword_3_4_0()); 
            }
            match(input,53,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:23734:1: rule__XReference__UnsettableAssignment_3_5 : ( ( 'unsettable' ) ) ;
    public final void rule__XReference__UnsettableAssignment_3_5() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23738:1: ( ( ( 'unsettable' ) ) )
            // InternalXcore.g:23739:2: ( ( 'unsettable' ) )
            {
            // InternalXcore.g:23739:2: ( ( 'unsettable' ) )
            // InternalXcore.g:23740:3: ( 'unsettable' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getUnsettableUnsettableKeyword_3_5_0()); 
            }
            // InternalXcore.g:23741:3: ( 'unsettable' )
            // InternalXcore.g:23742:4: 'unsettable'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getUnsettableUnsettableKeyword_3_5_0()); 
            }
            match(input,52,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:23753:1: rule__XReference__DerivedAssignment_3_6 : ( ( 'derived' ) ) ;
    public final void rule__XReference__DerivedAssignment_3_6() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23757:1: ( ( ( 'derived' ) ) )
            // InternalXcore.g:23758:2: ( ( 'derived' ) )
            {
            // InternalXcore.g:23758:2: ( ( 'derived' ) )
            // InternalXcore.g:23759:3: ( 'derived' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getDerivedDerivedKeyword_3_6_0()); 
            }
            // InternalXcore.g:23760:3: ( 'derived' )
            // InternalXcore.g:23761:4: 'derived'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getDerivedDerivedKeyword_3_6_0()); 
            }
            match(input,32,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:23772:1: rule__XReference__TypeAssignment_4 : ( ruleXGenericType ) ;
    public final void rule__XReference__TypeAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23776:1: ( ( ruleXGenericType ) )
            // InternalXcore.g:23777:2: ( ruleXGenericType )
            {
            // InternalXcore.g:23777:2: ( ruleXGenericType )
            // InternalXcore.g:23778:3: ruleXGenericType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getTypeXGenericTypeParserRuleCall_4_0()); 
            }
            pushFollow(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:23787:1: rule__XReference__MultiplicityAssignment_5 : ( ruleXMultiplicity ) ;
    public final void rule__XReference__MultiplicityAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23791:1: ( ( ruleXMultiplicity ) )
            // InternalXcore.g:23792:2: ( ruleXMultiplicity )
            {
            // InternalXcore.g:23792:2: ( ruleXMultiplicity )
            // InternalXcore.g:23793:3: ruleXMultiplicity
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getMultiplicityXMultiplicityParserRuleCall_5_0()); 
            }
            pushFollow(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:23802:1: rule__XReference__NameAssignment_6 : ( RULE_ID ) ;
    public final void rule__XReference__NameAssignment_6() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23806:1: ( ( RULE_ID ) )
            // InternalXcore.g:23807:2: ( RULE_ID )
            {
            // InternalXcore.g:23807:2: ( RULE_ID )
            // InternalXcore.g:23808:3: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getNameIDTerminalRuleCall_6_0()); 
            }
            match(input,RULE_ID,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:23817:1: rule__XReference__OppositeAssignment_7_1 : ( ( ruleValidID ) ) ;
    public final void rule__XReference__OppositeAssignment_7_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23821:1: ( ( ( ruleValidID ) ) )
            // InternalXcore.g:23822:2: ( ( ruleValidID ) )
            {
            // InternalXcore.g:23822:2: ( ( ruleValidID ) )
            // InternalXcore.g:23823:3: ( ruleValidID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getOppositeGenFeatureCrossReference_7_1_0()); 
            }
            // InternalXcore.g:23824:3: ( ruleValidID )
            // InternalXcore.g:23825:4: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getOppositeGenFeatureValidIDParserRuleCall_7_1_0_1()); 
            }
            pushFollow(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:23836:1: rule__XReference__KeysAssignment_8_1 : ( ( ruleValidID ) ) ;
    public final void rule__XReference__KeysAssignment_8_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23840:1: ( ( ( ruleValidID ) ) )
            // InternalXcore.g:23841:2: ( ( ruleValidID ) )
            {
            // InternalXcore.g:23841:2: ( ( ruleValidID ) )
            // InternalXcore.g:23842:3: ( ruleValidID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getKeysGenFeatureCrossReference_8_1_0()); 
            }
            // InternalXcore.g:23843:3: ( ruleValidID )
            // InternalXcore.g:23844:4: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getKeysGenFeatureValidIDParserRuleCall_8_1_0_1()); 
            }
            pushFollow(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:23855: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:23859:1: ( ( ( ruleValidID ) ) )
            // InternalXcore.g:23860:2: ( ( ruleValidID ) )
            {
            // InternalXcore.g:23860:2: ( ( ruleValidID ) )
            // InternalXcore.g:23861:3: ( ruleValidID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getKeysGenFeatureCrossReference_8_2_1_0()); 
            }
            // InternalXcore.g:23862:3: ( ruleValidID )
            // InternalXcore.g:23863:4: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getKeysGenFeatureValidIDParserRuleCall_8_2_1_0_1()); 
            }
            pushFollow(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:23874: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:23878:1: ( ( ruleXBlockExpression ) )
            // InternalXcore.g:23879:2: ( ruleXBlockExpression )
            {
            // InternalXcore.g:23879:2: ( ruleXBlockExpression )
            // InternalXcore.g:23880:3: ruleXBlockExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getGetBodyXBlockExpressionParserRuleCall_9_0_1_0()); 
            }
            pushFollow(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:23889: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:23893:1: ( ( ruleXBlockExpression ) )
            // InternalXcore.g:23894:2: ( ruleXBlockExpression )
            {
            // InternalXcore.g:23894:2: ( ruleXBlockExpression )
            // InternalXcore.g:23895:3: ruleXBlockExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getSetBodyXBlockExpressionParserRuleCall_9_1_1_0()); 
            }
            pushFollow(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:23904: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:23908:1: ( ( ruleXBlockExpression ) )
            // InternalXcore.g:23909:2: ( ruleXBlockExpression )
            {
            // InternalXcore.g:23909:2: ( ruleXBlockExpression )
            // InternalXcore.g:23910:3: ruleXBlockExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getIsSetBodyXBlockExpressionParserRuleCall_9_2_1_0()); 
            }
            pushFollow(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:23919: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:23923:1: ( ( ruleXBlockExpression ) )
            // InternalXcore.g:23924:2: ( ruleXBlockExpression )
            {
            // InternalXcore.g:23924:2: ( ruleXBlockExpression )
            // InternalXcore.g:23925:3: ruleXBlockExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getUnsetBodyXBlockExpressionParserRuleCall_9_3_1_0()); 
            }
            pushFollow(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:23934:1: rule__XOperation__AnnotationsAssignment_1 : ( ruleXAnnotation ) ;
    public final void rule__XOperation__AnnotationsAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:23938:1: ( ( ruleXAnnotation ) )
            // InternalXcore.g:23939:2: ( ruleXAnnotation )
            {
            // InternalXcore.g:23939:2: ( ruleXAnnotation )
            // InternalXcore.g:23940:3: ruleXAnnotation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getAnnotationsXAnnotationParserRuleCall_1_0()); 
            }
            pushFollow(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:23949: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:23953:1: ( ( ( 'unordered' ) ) )
            // InternalXcore.g:23954:2: ( ( 'unordered' ) )
            {
            // InternalXcore.g:23954:2: ( ( 'unordered' ) )
            // InternalXcore.g:23955:3: ( 'unordered' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getUnorderedUnorderedKeyword_3_0_0_0()); 
            }
            // InternalXcore.g:23956:3: ( 'unordered' )
            // InternalXcore.g:23957:4: 'unordered'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getUnorderedUnorderedKeyword_3_0_0_0()); 
            }
            match(input,51,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:23968: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:23972:1: ( ( ( 'unique' ) ) )
            // InternalXcore.g:23973:2: ( ( 'unique' ) )
            {
            // InternalXcore.g:23973:2: ( ( 'unique' ) )
            // InternalXcore.g:23974:3: ( 'unique' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getUniqueUniqueKeyword_3_0_1_0()); 
            }
            // InternalXcore.g:23975:3: ( 'unique' )
            // InternalXcore.g:23976:4: 'unique'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getUniqueUniqueKeyword_3_0_1_0()); 
            }
            match(input,50,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:23987: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:23991:1: ( ( ( 'unique' ) ) )
            // InternalXcore.g:23992:2: ( ( 'unique' ) )
            {
            // InternalXcore.g:23992:2: ( ( 'unique' ) )
            // InternalXcore.g:23993:3: ( 'unique' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getUniqueUniqueKeyword_3_1_0_0()); 
            }
            // InternalXcore.g:23994:3: ( 'unique' )
            // InternalXcore.g:23995:4: 'unique'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getUniqueUniqueKeyword_3_1_0_0()); 
            }
            match(input,50,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:24006: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:24010:1: ( ( ( 'unordered' ) ) )
            // InternalXcore.g:24011:2: ( ( 'unordered' ) )
            {
            // InternalXcore.g:24011:2: ( ( 'unordered' ) )
            // InternalXcore.g:24012:3: ( 'unordered' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getUnorderedUnorderedKeyword_3_1_1_0()); 
            }
            // InternalXcore.g:24013:3: ( 'unordered' )
            // InternalXcore.g:24014:4: 'unordered'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getUnorderedUnorderedKeyword_3_1_1_0()); 
            }
            match(input,51,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:24025:1: rule__XOperation__TypeParametersAssignment_4_1 : ( ruleXTypeParameter ) ;
    public final void rule__XOperation__TypeParametersAssignment_4_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24029:1: ( ( ruleXTypeParameter ) )
            // InternalXcore.g:24030:2: ( ruleXTypeParameter )
            {
            // InternalXcore.g:24030:2: ( ruleXTypeParameter )
            // InternalXcore.g:24031:3: ruleXTypeParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getTypeParametersXTypeParameterParserRuleCall_4_1_0()); 
            }
            pushFollow(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:24040: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:24044:1: ( ( ruleXTypeParameter ) )
            // InternalXcore.g:24045:2: ( ruleXTypeParameter )
            {
            // InternalXcore.g:24045:2: ( ruleXTypeParameter )
            // InternalXcore.g:24046:3: ruleXTypeParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getTypeParametersXTypeParameterParserRuleCall_4_2_1_0()); 
            }
            pushFollow(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:24055:1: rule__XOperation__TypeAssignment_5_0 : ( ruleXGenericType ) ;
    public final void rule__XOperation__TypeAssignment_5_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24059:1: ( ( ruleXGenericType ) )
            // InternalXcore.g:24060:2: ( ruleXGenericType )
            {
            // InternalXcore.g:24060:2: ( ruleXGenericType )
            // InternalXcore.g:24061:3: ruleXGenericType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getTypeXGenericTypeParserRuleCall_5_0_0()); 
            }
            pushFollow(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:24070:1: rule__XOperation__MultiplicityAssignment_6 : ( ruleXMultiplicity ) ;
    public final void rule__XOperation__MultiplicityAssignment_6() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24074:1: ( ( ruleXMultiplicity ) )
            // InternalXcore.g:24075:2: ( ruleXMultiplicity )
            {
            // InternalXcore.g:24075:2: ( ruleXMultiplicity )
            // InternalXcore.g:24076:3: ruleXMultiplicity
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getMultiplicityXMultiplicityParserRuleCall_6_0()); 
            }
            pushFollow(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:24085:1: rule__XOperation__NameAssignment_7 : ( RULE_ID ) ;
    public final void rule__XOperation__NameAssignment_7() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24089:1: ( ( RULE_ID ) )
            // InternalXcore.g:24090:2: ( RULE_ID )
            {
            // InternalXcore.g:24090:2: ( RULE_ID )
            // InternalXcore.g:24091:3: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getNameIDTerminalRuleCall_7_0()); 
            }
            match(input,RULE_ID,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:24100:1: rule__XOperation__ParametersAssignment_9_0 : ( ruleXParameter ) ;
    public final void rule__XOperation__ParametersAssignment_9_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24104:1: ( ( ruleXParameter ) )
            // InternalXcore.g:24105:2: ( ruleXParameter )
            {
            // InternalXcore.g:24105:2: ( ruleXParameter )
            // InternalXcore.g:24106:3: ruleXParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getParametersXParameterParserRuleCall_9_0_0()); 
            }
            pushFollow(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:24115: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:24119:1: ( ( ruleXParameter ) )
            // InternalXcore.g:24120:2: ( ruleXParameter )
            {
            // InternalXcore.g:24120:2: ( ruleXParameter )
            // InternalXcore.g:24121:3: ruleXParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getParametersXParameterParserRuleCall_9_1_1_0()); 
            }
            pushFollow(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:24130:1: rule__XOperation__ExceptionsAssignment_11_1 : ( ruleXGenericType ) ;
    public final void rule__XOperation__ExceptionsAssignment_11_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24134:1: ( ( ruleXGenericType ) )
            // InternalXcore.g:24135:2: ( ruleXGenericType )
            {
            // InternalXcore.g:24135:2: ( ruleXGenericType )
            // InternalXcore.g:24136:3: ruleXGenericType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getExceptionsXGenericTypeParserRuleCall_11_1_0()); 
            }
            pushFollow(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:24145: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:24149:1: ( ( ruleXGenericType ) )
            // InternalXcore.g:24150:2: ( ruleXGenericType )
            {
            // InternalXcore.g:24150:2: ( ruleXGenericType )
            // InternalXcore.g:24151:3: ruleXGenericType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getExceptionsXGenericTypeParserRuleCall_11_2_1_0()); 
            }
            pushFollow(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:24160:1: rule__XOperation__BodyAssignment_12 : ( ruleXBlockExpression ) ;
    public final void rule__XOperation__BodyAssignment_12() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24164:1: ( ( ruleXBlockExpression ) )
            // InternalXcore.g:24165:2: ( ruleXBlockExpression )
            {
            // InternalXcore.g:24165:2: ( ruleXBlockExpression )
            // InternalXcore.g:24166:3: ruleXBlockExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getBodyXBlockExpressionParserRuleCall_12_0()); 
            }
            pushFollow(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:24175:1: rule__XParameter__AnnotationsAssignment_0 : ( ruleXAnnotation ) ;
    public final void rule__XParameter__AnnotationsAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24179:1: ( ( ruleXAnnotation ) )
            // InternalXcore.g:24180:2: ( ruleXAnnotation )
            {
            // InternalXcore.g:24180:2: ( ruleXAnnotation )
            // InternalXcore.g:24181:3: ruleXAnnotation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getAnnotationsXAnnotationParserRuleCall_0_0()); 
            }
            pushFollow(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:24190: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:24194:1: ( ( ( 'unordered' ) ) )
            // InternalXcore.g:24195:2: ( ( 'unordered' ) )
            {
            // InternalXcore.g:24195:2: ( ( 'unordered' ) )
            // InternalXcore.g:24196:3: ( 'unordered' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getUnorderedUnorderedKeyword_1_0_0_0()); 
            }
            // InternalXcore.g:24197:3: ( 'unordered' )
            // InternalXcore.g:24198:4: 'unordered'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getUnorderedUnorderedKeyword_1_0_0_0()); 
            }
            match(input,51,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:24209: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:24213:1: ( ( ( 'unique' ) ) )
            // InternalXcore.g:24214:2: ( ( 'unique' ) )
            {
            // InternalXcore.g:24214:2: ( ( 'unique' ) )
            // InternalXcore.g:24215:3: ( 'unique' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getUniqueUniqueKeyword_1_0_1_0()); 
            }
            // InternalXcore.g:24216:3: ( 'unique' )
            // InternalXcore.g:24217:4: 'unique'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getUniqueUniqueKeyword_1_0_1_0()); 
            }
            match(input,50,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:24228: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:24232:1: ( ( ( 'unique' ) ) )
            // InternalXcore.g:24233:2: ( ( 'unique' ) )
            {
            // InternalXcore.g:24233:2: ( ( 'unique' ) )
            // InternalXcore.g:24234:3: ( 'unique' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getUniqueUniqueKeyword_1_1_0_0()); 
            }
            // InternalXcore.g:24235:3: ( 'unique' )
            // InternalXcore.g:24236:4: 'unique'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getUniqueUniqueKeyword_1_1_0_0()); 
            }
            match(input,50,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:24247: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:24251:1: ( ( ( 'unordered' ) ) )
            // InternalXcore.g:24252:2: ( ( 'unordered' ) )
            {
            // InternalXcore.g:24252:2: ( ( 'unordered' ) )
            // InternalXcore.g:24253:3: ( 'unordered' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getUnorderedUnorderedKeyword_1_1_1_0()); 
            }
            // InternalXcore.g:24254:3: ( 'unordered' )
            // InternalXcore.g:24255:4: 'unordered'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getUnorderedUnorderedKeyword_1_1_1_0()); 
            }
            match(input,51,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:24266:1: rule__XParameter__TypeAssignment_2 : ( ruleXGenericType ) ;
    public final void rule__XParameter__TypeAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24270:1: ( ( ruleXGenericType ) )
            // InternalXcore.g:24271:2: ( ruleXGenericType )
            {
            // InternalXcore.g:24271:2: ( ruleXGenericType )
            // InternalXcore.g:24272:3: ruleXGenericType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getTypeXGenericTypeParserRuleCall_2_0()); 
            }
            pushFollow(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:24281:1: rule__XParameter__MultiplicityAssignment_3 : ( ruleXMultiplicity ) ;
    public final void rule__XParameter__MultiplicityAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24285:1: ( ( ruleXMultiplicity ) )
            // InternalXcore.g:24286:2: ( ruleXMultiplicity )
            {
            // InternalXcore.g:24286:2: ( ruleXMultiplicity )
            // InternalXcore.g:24287:3: ruleXMultiplicity
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getMultiplicityXMultiplicityParserRuleCall_3_0()); 
            }
            pushFollow(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:24296:1: rule__XParameter__NameAssignment_4 : ( RULE_ID ) ;
    public final void rule__XParameter__NameAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24300:1: ( ( RULE_ID ) )
            // InternalXcore.g:24301:2: ( RULE_ID )
            {
            // InternalXcore.g:24301:2: ( RULE_ID )
            // InternalXcore.g:24302:3: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getNameIDTerminalRuleCall_4_0()); 
            }
            match(input,RULE_ID,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:24311:1: rule__XTypeParameter__AnnotationsAssignment_0 : ( ruleXAnnotation ) ;
    public final void rule__XTypeParameter__AnnotationsAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24315:1: ( ( ruleXAnnotation ) )
            // InternalXcore.g:24316:2: ( ruleXAnnotation )
            {
            // InternalXcore.g:24316:2: ( ruleXAnnotation )
            // InternalXcore.g:24317:3: ruleXAnnotation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getAnnotationsXAnnotationParserRuleCall_0_0()); 
            }
            pushFollow(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:24326:1: rule__XTypeParameter__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__XTypeParameter__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24330:1: ( ( RULE_ID ) )
            // InternalXcore.g:24331:2: ( RULE_ID )
            {
            // InternalXcore.g:24331:2: ( RULE_ID )
            // InternalXcore.g:24332:3: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getNameIDTerminalRuleCall_1_0()); 
            }
            match(input,RULE_ID,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:24341:1: rule__XTypeParameter__BoundsAssignment_2_1 : ( ruleXGenericType ) ;
    public final void rule__XTypeParameter__BoundsAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24345:1: ( ( ruleXGenericType ) )
            // InternalXcore.g:24346:2: ( ruleXGenericType )
            {
            // InternalXcore.g:24346:2: ( ruleXGenericType )
            // InternalXcore.g:24347:3: ruleXGenericType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getBoundsXGenericTypeParserRuleCall_2_1_0()); 
            }
            pushFollow(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:24356: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:24360:1: ( ( ruleXGenericType ) )
            // InternalXcore.g:24361:2: ( ruleXGenericType )
            {
            // InternalXcore.g:24361:2: ( ruleXGenericType )
            // InternalXcore.g:24362:3: ruleXGenericType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getBoundsXGenericTypeParserRuleCall_2_2_1_0()); 
            }
            pushFollow(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:24371:1: rule__XBlockExpression__ExpressionsAssignment_2_0 : ( ruleXExpressionOrVarDeclaration ) ;
    public final void rule__XBlockExpression__ExpressionsAssignment_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24375:1: ( ( ruleXExpressionOrVarDeclaration ) )
            // InternalXcore.g:24376:2: ( ruleXExpressionOrVarDeclaration )
            {
            // InternalXcore.g:24376:2: ( ruleXExpressionOrVarDeclaration )
            // InternalXcore.g:24377:3: ruleXExpressionOrVarDeclaration
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_2_0_0()); 
            }
            pushFollow(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:24386:1: rule__XGenericType__TypeAssignment_0 : ( ( ruleXQualifiedName ) ) ;
    public final void rule__XGenericType__TypeAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24390:1: ( ( ( ruleXQualifiedName ) ) )
            // InternalXcore.g:24391:2: ( ( ruleXQualifiedName ) )
            {
            // InternalXcore.g:24391:2: ( ( ruleXQualifiedName ) )
            // InternalXcore.g:24392:3: ( ruleXQualifiedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getTypeGenBaseCrossReference_0_0()); 
            }
            // InternalXcore.g:24393:3: ( ruleXQualifiedName )
            // InternalXcore.g:24394:4: ruleXQualifiedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getTypeGenBaseXQualifiedNameParserRuleCall_0_0_1()); 
            }
            pushFollow(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:24405:1: rule__XGenericType__TypeArgumentsAssignment_1_1 : ( ruleXGenericTypeArgument ) ;
    public final void rule__XGenericType__TypeArgumentsAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24409:1: ( ( ruleXGenericTypeArgument ) )
            // InternalXcore.g:24410:2: ( ruleXGenericTypeArgument )
            {
            // InternalXcore.g:24410:2: ( ruleXGenericTypeArgument )
            // InternalXcore.g:24411:3: ruleXGenericTypeArgument
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getTypeArgumentsXGenericTypeArgumentParserRuleCall_1_1_0()); 
            }
            pushFollow(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:24420: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:24424:1: ( ( ruleXGenericTypeArgument ) )
            // InternalXcore.g:24425:2: ( ruleXGenericTypeArgument )
            {
            // InternalXcore.g:24425:2: ( ruleXGenericTypeArgument )
            // InternalXcore.g:24426:3: ruleXGenericTypeArgument
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getTypeArgumentsXGenericTypeArgumentParserRuleCall_1_2_1_0()); 
            }
            pushFollow(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:24435: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:24439:1: ( ( ruleXGenericType ) )
            // InternalXcore.g:24440:2: ( ruleXGenericType )
            {
            // InternalXcore.g:24440:2: ( ruleXGenericType )
            // InternalXcore.g:24441:3: ruleXGenericType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericWildcardTypeArgumentAccess().getUpperBoundXGenericTypeParserRuleCall_2_0_1_0()); 
            }
            pushFollow(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:24450: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:24454:1: ( ( ruleXGenericType ) )
            // InternalXcore.g:24455:2: ( ruleXGenericType )
            {
            // InternalXcore.g:24455:2: ( ruleXGenericType )
            // InternalXcore.g:24456:3: ruleXGenericType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericWildcardTypeArgumentAccess().getLowerBoundXGenericTypeParserRuleCall_2_1_1_0()); 
            }
            pushFollow(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:24465:1: rule__XAssignment__FeatureAssignment_0_1 : ( ( ruleFeatureCallID ) ) ;
    public final void rule__XAssignment__FeatureAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24469:1: ( ( ( ruleFeatureCallID ) ) )
            // InternalXcore.g:24470:2: ( ( ruleFeatureCallID ) )
            {
            // InternalXcore.g:24470:2: ( ( ruleFeatureCallID ) )
            // InternalXcore.g:24471:3: ( ruleFeatureCallID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
            }
            // InternalXcore.g:24472:3: ( ruleFeatureCallID )
            // InternalXcore.g:24473:4: ruleFeatureCallID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_0_1_0_1()); 
            }
            pushFollow(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:24484:1: rule__XAssignment__ValueAssignment_0_3 : ( ruleXAssignment ) ;
    public final void rule__XAssignment__ValueAssignment_0_3() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24488:1: ( ( ruleXAssignment ) )
            // InternalXcore.g:24489:2: ( ruleXAssignment )
            {
            // InternalXcore.g:24489:2: ( ruleXAssignment )
            // InternalXcore.g:24490:3: ruleXAssignment
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0()); 
            }
            pushFollow(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:24499: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:24503:1: ( ( ( ruleOpMultiAssign ) ) )
            // InternalXcore.g:24504:2: ( ( ruleOpMultiAssign ) )
            {
            // InternalXcore.g:24504:2: ( ( ruleOpMultiAssign ) )
            // InternalXcore.g:24505:3: ( ruleOpMultiAssign )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
            }
            // InternalXcore.g:24506:3: ( ruleOpMultiAssign )
            // InternalXcore.g:24507:4: ruleOpMultiAssign
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementOpMultiAssignParserRuleCall_1_1_0_0_1_0_1()); 
            }
            pushFollow(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:24518: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:24522:1: ( ( ruleXAssignment ) )
            // InternalXcore.g:24523:2: ( ruleXAssignment )
            {
            // InternalXcore.g:24523:2: ( ruleXAssignment )
            // InternalXcore.g:24524:3: ruleXAssignment
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0()); 
            }
            pushFollow(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:24533: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:24537:1: ( ( ( ruleOpOr ) ) )
            // InternalXcore.g:24538:2: ( ( ruleOpOr ) )
            {
            // InternalXcore.g:24538:2: ( ( ruleOpOr ) )
            // InternalXcore.g:24539:3: ( ruleOpOr )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
            }
            // InternalXcore.g:24540:3: ( ruleOpOr )
            // InternalXcore.g:24541:4: ruleOpOr
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementOpOrParserRuleCall_1_0_0_1_0_1()); 
            }
            pushFollow(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:24552:1: rule__XOrExpression__RightOperandAssignment_1_1 : ( ruleXAndExpression ) ;
    public final void rule__XOrExpression__RightOperandAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24556:1: ( ( ruleXAndExpression ) )
            // InternalXcore.g:24557:2: ( ruleXAndExpression )
            {
            // InternalXcore.g:24557:2: ( ruleXAndExpression )
            // InternalXcore.g:24558:3: ruleXAndExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0()); 
            }
            pushFollow(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:24567: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:24571:1: ( ( ( ruleOpAnd ) ) )
            // InternalXcore.g:24572:2: ( ( ruleOpAnd ) )
            {
            // InternalXcore.g:24572:2: ( ( ruleOpAnd ) )
            // InternalXcore.g:24573:3: ( ruleOpAnd )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
            }
            // InternalXcore.g:24574:3: ( ruleOpAnd )
            // InternalXcore.g:24575:4: ruleOpAnd
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementOpAndParserRuleCall_1_0_0_1_0_1()); 
            }
            pushFollow(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:24586:1: rule__XAndExpression__RightOperandAssignment_1_1 : ( ruleXEqualityExpression ) ;
    public final void rule__XAndExpression__RightOperandAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24590:1: ( ( ruleXEqualityExpression ) )
            // InternalXcore.g:24591:2: ( ruleXEqualityExpression )
            {
            // InternalXcore.g:24591:2: ( ruleXEqualityExpression )
            // InternalXcore.g:24592:3: ruleXEqualityExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0()); 
            }
            pushFollow(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:24601: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:24605:1: ( ( ( ruleOpEquality ) ) )
            // InternalXcore.g:24606:2: ( ( ruleOpEquality ) )
            {
            // InternalXcore.g:24606:2: ( ( ruleOpEquality ) )
            // InternalXcore.g:24607:3: ( ruleOpEquality )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
            }
            // InternalXcore.g:24608:3: ( ruleOpEquality )
            // InternalXcore.g:24609:4: ruleOpEquality
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementOpEqualityParserRuleCall_1_0_0_1_0_1()); 
            }
            pushFollow(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:24620:1: rule__XEqualityExpression__RightOperandAssignment_1_1 : ( ruleXRelationalExpression ) ;
    public final void rule__XEqualityExpression__RightOperandAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24624:1: ( ( ruleXRelationalExpression ) )
            // InternalXcore.g:24625:2: ( ruleXRelationalExpression )
            {
            // InternalXcore.g:24625:2: ( ruleXRelationalExpression )
            // InternalXcore.g:24626:3: ruleXRelationalExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0()); 
            }
            pushFollow(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:24635: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:24639:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:24640:2: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:24640:2: ( ruleJvmTypeReference )
            // InternalXcore.g:24641:3: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0()); 
            }
            pushFollow(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:24650: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:24654:1: ( ( ( ruleOpCompare ) ) )
            // InternalXcore.g:24655:2: ( ( ruleOpCompare ) )
            {
            // InternalXcore.g:24655:2: ( ( ruleOpCompare ) )
            // InternalXcore.g:24656:3: ( ruleOpCompare )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
            }
            // InternalXcore.g:24657:3: ( ruleOpCompare )
            // InternalXcore.g:24658:4: ruleOpCompare
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementOpCompareParserRuleCall_1_1_0_0_1_0_1()); 
            }
            pushFollow(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:24669: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:24673:1: ( ( ruleXOtherOperatorExpression ) )
            // InternalXcore.g:24674:2: ( ruleXOtherOperatorExpression )
            {
            // InternalXcore.g:24674:2: ( ruleXOtherOperatorExpression )
            // InternalXcore.g:24675:3: ruleXOtherOperatorExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0()); 
            }
            pushFollow(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:24684: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:24688:1: ( ( ( ruleOpOther ) ) )
            // InternalXcore.g:24689:2: ( ( ruleOpOther ) )
            {
            // InternalXcore.g:24689:2: ( ( ruleOpOther ) )
            // InternalXcore.g:24690:3: ( ruleOpOther )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
            }
            // InternalXcore.g:24691:3: ( ruleOpOther )
            // InternalXcore.g:24692:4: ruleOpOther
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementOpOtherParserRuleCall_1_0_0_1_0_1()); 
            }
            pushFollow(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:24703:1: rule__XOtherOperatorExpression__RightOperandAssignment_1_1 : ( ruleXAdditiveExpression ) ;
    public final void rule__XOtherOperatorExpression__RightOperandAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24707:1: ( ( ruleXAdditiveExpression ) )
            // InternalXcore.g:24708:2: ( ruleXAdditiveExpression )
            {
            // InternalXcore.g:24708:2: ( ruleXAdditiveExpression )
            // InternalXcore.g:24709:3: ruleXAdditiveExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0()); 
            }
            pushFollow(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:24718: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:24722:1: ( ( ( ruleOpAdd ) ) )
            // InternalXcore.g:24723:2: ( ( ruleOpAdd ) )
            {
            // InternalXcore.g:24723:2: ( ( ruleOpAdd ) )
            // InternalXcore.g:24724:3: ( ruleOpAdd )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
            }
            // InternalXcore.g:24725:3: ( ruleOpAdd )
            // InternalXcore.g:24726:4: ruleOpAdd
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementOpAddParserRuleCall_1_0_0_1_0_1()); 
            }
            pushFollow(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:24737:1: rule__XAdditiveExpression__RightOperandAssignment_1_1 : ( ruleXMultiplicativeExpression ) ;
    public final void rule__XAdditiveExpression__RightOperandAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24741:1: ( ( ruleXMultiplicativeExpression ) )
            // InternalXcore.g:24742:2: ( ruleXMultiplicativeExpression )
            {
            // InternalXcore.g:24742:2: ( ruleXMultiplicativeExpression )
            // InternalXcore.g:24743:3: ruleXMultiplicativeExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0()); 
            }
            pushFollow(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:24752: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:24756:1: ( ( ( ruleOpMulti ) ) )
            // InternalXcore.g:24757:2: ( ( ruleOpMulti ) )
            {
            // InternalXcore.g:24757:2: ( ( ruleOpMulti ) )
            // InternalXcore.g:24758:3: ( ruleOpMulti )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
            }
            // InternalXcore.g:24759:3: ( ruleOpMulti )
            // InternalXcore.g:24760:4: ruleOpMulti
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementOpMultiParserRuleCall_1_0_0_1_0_1()); 
            }
            pushFollow(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:24771:1: rule__XMultiplicativeExpression__RightOperandAssignment_1_1 : ( ruleXUnaryOperation ) ;
    public final void rule__XMultiplicativeExpression__RightOperandAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24775:1: ( ( ruleXUnaryOperation ) )
            // InternalXcore.g:24776:2: ( ruleXUnaryOperation )
            {
            // InternalXcore.g:24776:2: ( ruleXUnaryOperation )
            // InternalXcore.g:24777:3: ruleXUnaryOperation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0()); 
            }
            pushFollow(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:24786:1: rule__XUnaryOperation__FeatureAssignment_0_1 : ( ( ruleOpUnary ) ) ;
    public final void rule__XUnaryOperation__FeatureAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24790:1: ( ( ( ruleOpUnary ) ) )
            // InternalXcore.g:24791:2: ( ( ruleOpUnary ) )
            {
            // InternalXcore.g:24791:2: ( ( ruleOpUnary ) )
            // InternalXcore.g:24792:3: ( ruleOpUnary )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
            }
            // InternalXcore.g:24793:3: ( ruleOpUnary )
            // InternalXcore.g:24794:4: ruleOpUnary
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementOpUnaryParserRuleCall_0_1_0_1()); 
            }
            pushFollow(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:24805:1: rule__XUnaryOperation__OperandAssignment_0_2 : ( ruleXUnaryOperation ) ;
    public final void rule__XUnaryOperation__OperandAssignment_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24809:1: ( ( ruleXUnaryOperation ) )
            // InternalXcore.g:24810:2: ( ruleXUnaryOperation )
            {
            // InternalXcore.g:24810:2: ( ruleXUnaryOperation )
            // InternalXcore.g:24811:3: ruleXUnaryOperation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0()); 
            }
            pushFollow(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:24820:1: rule__XCastedExpression__TypeAssignment_1_1 : ( ruleJvmTypeReference ) ;
    public final void rule__XCastedExpression__TypeAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:24824:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:24825:2: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:24825:2: ( ruleJvmTypeReference )
            // InternalXcore.g:24826:3: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0()); 
            }
            pushFollow(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:24835: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:24839:1: ( ( ( ruleOpPostfix ) ) )
            // InternalXcore.g:24840:2: ( ( ruleOpPostfix ) )
            {
            // InternalXcore.g:24840:2: ( ( ruleOpPostfix ) )
            // InternalXcore.g:24841:3: ( ruleOpPostfix )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_1_0()); 
            }
            // InternalXcore.g:24842:3: ( ruleOpPostfix )
            // InternalXcore.g:24843:4: ruleOpPostfix
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementOpPostfixParserRuleCall_1_0_1_0_1()); 
            }
            pushFollow(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:24854: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:24858:1: ( ( ( '::' ) ) )
            // InternalXcore.g:24859:2: ( ( '::' ) )
            {
            // InternalXcore.g:24859:2: ( ( '::' ) )
            // InternalXcore.g:24860:3: ( '::' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
            }
            // InternalXcore.g:24861:3: ( '::' )
            // InternalXcore.g:24862:4: '::'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
            }
            match(input,115,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:24873: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:24877:1: ( ( ( ruleFeatureCallID ) ) )
            // InternalXcore.g:24878:2: ( ( ruleFeatureCallID ) )
            {
            // InternalXcore.g:24878:2: ( ( ruleFeatureCallID ) )
            // InternalXcore.g:24879:3: ( ruleFeatureCallID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0()); 
            }
            // InternalXcore.g:24880:3: ( ruleFeatureCallID )
            // InternalXcore.g:24881:4: ruleFeatureCallID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_1_0_0_0_2_0_1()); 
            }
            pushFollow(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:24892: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:24896:1: ( ( ruleXAssignment ) )
            // InternalXcore.g:24897:2: ( ruleXAssignment )
            {
            // InternalXcore.g:24897:2: ( ruleXAssignment )
            // InternalXcore.g:24898:3: ruleXAssignment
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0()); 
            }
            pushFollow(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:24907: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:24911:1: ( ( ( '?.' ) ) )
            // InternalXcore.g:24912:2: ( ( '?.' ) )
            {
            // InternalXcore.g:24912:2: ( ( '?.' ) )
            // InternalXcore.g:24913:3: ( '?.' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
            }
            // InternalXcore.g:24914:3: ( '?.' )
            // InternalXcore.g:24915:4: '?.'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
            }
            match(input,116,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:24926: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:24930:1: ( ( ( '::' ) ) )
            // InternalXcore.g:24931:2: ( ( '::' ) )
            {
            // InternalXcore.g:24931:2: ( ( '::' ) )
            // InternalXcore.g:24932:3: ( '::' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
            }
            // InternalXcore.g:24933:3: ( '::' )
            // InternalXcore.g:24934:4: '::'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
            }
            match(input,115,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:24945: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:24949:1: ( ( ruleJvmArgumentTypeReference ) )
            // InternalXcore.g:24950:2: ( ruleJvmArgumentTypeReference )
            {
            // InternalXcore.g:24950:2: ( ruleJvmArgumentTypeReference )
            // InternalXcore.g:24951:3: ruleJvmArgumentTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0()); 
            }
            pushFollow(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:24960: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:24964:1: ( ( ruleJvmArgumentTypeReference ) )
            // InternalXcore.g:24965:2: ( ruleJvmArgumentTypeReference )
            {
            // InternalXcore.g:24965:2: ( ruleJvmArgumentTypeReference )
            // InternalXcore.g:24966:3: ruleJvmArgumentTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0()); 
            }
            pushFollow(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:24975: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:24979:1: ( ( ( ruleIdOrSuper ) ) )
            // InternalXcore.g:24980:2: ( ( ruleIdOrSuper ) )
            {
            // InternalXcore.g:24980:2: ( ( ruleIdOrSuper ) )
            // InternalXcore.g:24981:3: ( ruleIdOrSuper )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0()); 
            }
            // InternalXcore.g:24982:3: ( ruleIdOrSuper )
            // InternalXcore.g:24983:4: ruleIdOrSuper
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_1_1_2_0_1()); 
            }
            pushFollow(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:24994: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:24998:1: ( ( ( '(' ) ) )
            // InternalXcore.g:24999:2: ( ( '(' ) )
            {
            // InternalXcore.g:24999:2: ( ( '(' ) )
            // InternalXcore.g:25000:3: ( '(' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
            }
            // InternalXcore.g:25001:3: ( '(' )
            // InternalXcore.g:25002:4: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
            }
            match(input,85,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:25013: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:25017:1: ( ( ruleXShortClosure ) )
            // InternalXcore.g:25018:2: ( ruleXShortClosure )
            {
            // InternalXcore.g:25018:2: ( ruleXShortClosure )
            // InternalXcore.g:25019:3: ruleXShortClosure
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0()); 
            }
            pushFollow(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:25028: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:25032:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25033:2: ( ruleXExpression )
            {
            // InternalXcore.g:25033:2: ( ruleXExpression )
            // InternalXcore.g:25034:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0()); 
            }
            pushFollow(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:25043: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:25047:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25048:2: ( ruleXExpression )
            {
            // InternalXcore.g:25048:2: ( ruleXExpression )
            // InternalXcore.g:25049:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0()); 
            }
            pushFollow(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:25058: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:25062:1: ( ( ruleXClosure ) )
            // InternalXcore.g:25063:2: ( ruleXClosure )
            {
            // InternalXcore.g:25063:2: ( ruleXClosure )
            // InternalXcore.g:25064:3: ruleXClosure
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0()); 
            }
            pushFollow(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:25073:1: rule__XSetLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
    public final void rule__XSetLiteral__ElementsAssignment_3_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25077:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25078:2: ( ruleXExpression )
            {
            // InternalXcore.g:25078:2: ( ruleXExpression )
            // InternalXcore.g:25079:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
            }
            pushFollow(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:25088: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:25092:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25093:2: ( ruleXExpression )
            {
            // InternalXcore.g:25093:2: ( ruleXExpression )
            // InternalXcore.g:25094:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
            }
            pushFollow(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:25103:1: rule__XListLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
    public final void rule__XListLiteral__ElementsAssignment_3_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25107:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25108:2: ( ruleXExpression )
            {
            // InternalXcore.g:25108:2: ( ruleXExpression )
            // InternalXcore.g:25109:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
            }
            pushFollow(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:25118: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:25122:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25123:2: ( ruleXExpression )
            {
            // InternalXcore.g:25123:2: ( ruleXExpression )
            // InternalXcore.g:25124:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
            }
            pushFollow(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:25133: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:25137:1: ( ( ruleJvmFormalParameter ) )
            // InternalXcore.g:25138:2: ( ruleJvmFormalParameter )
            {
            // InternalXcore.g:25138:2: ( ruleJvmFormalParameter )
            // InternalXcore.g:25139:3: ruleJvmFormalParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0()); 
            }
            pushFollow(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:25148: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:25152:1: ( ( ruleJvmFormalParameter ) )
            // InternalXcore.g:25153:2: ( ruleJvmFormalParameter )
            {
            // InternalXcore.g:25153:2: ( ruleJvmFormalParameter )
            // InternalXcore.g:25154:3: ruleJvmFormalParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0()); 
            }
            pushFollow(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:25163:1: rule__XClosure__ExplicitSyntaxAssignment_1_0_1 : ( ( '|' ) ) ;
    public final void rule__XClosure__ExplicitSyntaxAssignment_1_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25167:1: ( ( ( '|' ) ) )
            // InternalXcore.g:25168:2: ( ( '|' ) )
            {
            // InternalXcore.g:25168:2: ( ( '|' ) )
            // InternalXcore.g:25169:3: ( '|' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
            }
            // InternalXcore.g:25170:3: ( '|' )
            // InternalXcore.g:25171:4: '|'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
            }
            match(input,117,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:25182:1: rule__XClosure__ExpressionAssignment_2 : ( ruleXExpressionInClosure ) ;
    public final void rule__XClosure__ExpressionAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25186:1: ( ( ruleXExpressionInClosure ) )
            // InternalXcore.g:25187:2: ( ruleXExpressionInClosure )
            {
            // InternalXcore.g:25187:2: ( ruleXExpressionInClosure )
            // InternalXcore.g:25188:3: ruleXExpressionInClosure
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0()); 
            }
            pushFollow(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:25197:1: rule__XExpressionInClosure__ExpressionsAssignment_1_0 : ( ruleXExpressionOrVarDeclaration ) ;
    public final void rule__XExpressionInClosure__ExpressionsAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25201:1: ( ( ruleXExpressionOrVarDeclaration ) )
            // InternalXcore.g:25202:2: ( ruleXExpressionOrVarDeclaration )
            {
            // InternalXcore.g:25202:2: ( ruleXExpressionOrVarDeclaration )
            // InternalXcore.g:25203:3: ruleXExpressionOrVarDeclaration
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_1_0_0()); 
            }
            pushFollow(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:25212: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:25216:1: ( ( ruleJvmFormalParameter ) )
            // InternalXcore.g:25217:2: ( ruleJvmFormalParameter )
            {
            // InternalXcore.g:25217:2: ( ruleJvmFormalParameter )
            // InternalXcore.g:25218:3: ruleJvmFormalParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0()); 
            }
            pushFollow(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:25227: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:25231:1: ( ( ruleJvmFormalParameter ) )
            // InternalXcore.g:25232:2: ( ruleJvmFormalParameter )
            {
            // InternalXcore.g:25232:2: ( ruleJvmFormalParameter )
            // InternalXcore.g:25233:3: ruleJvmFormalParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0()); 
            }
            pushFollow(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:25242:1: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 : ( ( '|' ) ) ;
    public final void rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25246:1: ( ( ( '|' ) ) )
            // InternalXcore.g:25247:2: ( ( '|' ) )
            {
            // InternalXcore.g:25247:2: ( ( '|' ) )
            // InternalXcore.g:25248:3: ( '|' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
            }
            // InternalXcore.g:25249:3: ( '|' )
            // InternalXcore.g:25250:4: '|'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
            }
            match(input,117,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:25261:1: rule__XShortClosure__ExpressionAssignment_1 : ( ruleXExpression ) ;
    public final void rule__XShortClosure__ExpressionAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25265:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25266:2: ( ruleXExpression )
            {
            // InternalXcore.g:25266:2: ( ruleXExpression )
            // InternalXcore.g:25267:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0()); 
            }
            pushFollow(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:25276:1: rule__XIfExpression__IfAssignment_3 : ( ruleXExpression ) ;
    public final void rule__XIfExpression__IfAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25280:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25281:2: ( ruleXExpression )
            {
            // InternalXcore.g:25281:2: ( ruleXExpression )
            // InternalXcore.g:25282:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0()); 
            }
            pushFollow(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:25291:1: rule__XIfExpression__ThenAssignment_5 : ( ruleXExpression ) ;
    public final void rule__XIfExpression__ThenAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25295:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25296:2: ( ruleXExpression )
            {
            // InternalXcore.g:25296:2: ( ruleXExpression )
            // InternalXcore.g:25297:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0()); 
            }
            pushFollow(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:25306:1: rule__XIfExpression__ElseAssignment_6_1 : ( ruleXExpression ) ;
    public final void rule__XIfExpression__ElseAssignment_6_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25310:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25311:2: ( ruleXExpression )
            {
            // InternalXcore.g:25311:2: ( ruleXExpression )
            // InternalXcore.g:25312:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0()); 
            }
            pushFollow(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:25321: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:25325:1: ( ( ruleJvmFormalParameter ) )
            // InternalXcore.g:25326:2: ( ruleJvmFormalParameter )
            {
            // InternalXcore.g:25326:2: ( ruleJvmFormalParameter )
            // InternalXcore.g:25327:3: ruleJvmFormalParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_0_0_0_1_0()); 
            }
            pushFollow(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:25336: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:25340:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25341:2: ( ruleXExpression )
            {
            // InternalXcore.g:25341:2: ( ruleXExpression )
            // InternalXcore.g:25342:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0()); 
            }
            pushFollow(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:25351: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:25355:1: ( ( ruleJvmFormalParameter ) )
            // InternalXcore.g:25356:2: ( ruleJvmFormalParameter )
            {
            // InternalXcore.g:25356:2: ( ruleJvmFormalParameter )
            // InternalXcore.g:25357:3: ruleJvmFormalParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_1_0_0_0_0()); 
            }
            pushFollow(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:25366: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:25370:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25371:2: ( ruleXExpression )
            {
            // InternalXcore.g:25371:2: ( ruleXExpression )
            // InternalXcore.g:25372:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0()); 
            }
            pushFollow(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:25381:1: rule__XSwitchExpression__CasesAssignment_4 : ( ruleXCasePart ) ;
    public final void rule__XSwitchExpression__CasesAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25385:1: ( ( ruleXCasePart ) )
            // InternalXcore.g:25386:2: ( ruleXCasePart )
            {
            // InternalXcore.g:25386:2: ( ruleXCasePart )
            // InternalXcore.g:25387:3: ruleXCasePart
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0()); 
            }
            pushFollow(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:25396:1: rule__XSwitchExpression__DefaultAssignment_5_2 : ( ruleXExpression ) ;
    public final void rule__XSwitchExpression__DefaultAssignment_5_2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25400:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25401:2: ( ruleXExpression )
            {
            // InternalXcore.g:25401:2: ( ruleXExpression )
            // InternalXcore.g:25402:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0()); 
            }
            pushFollow(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:25411:1: rule__XCasePart__TypeGuardAssignment_1 : ( ruleJvmTypeReference ) ;
    public final void rule__XCasePart__TypeGuardAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25415:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:25416:2: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:25416:2: ( ruleJvmTypeReference )
            // InternalXcore.g:25417:3: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_1_0()); 
            }
            pushFollow(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:25426:1: rule__XCasePart__CaseAssignment_2_1 : ( ruleXExpression ) ;
    public final void rule__XCasePart__CaseAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25430:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25431:2: ( ruleXExpression )
            {
            // InternalXcore.g:25431:2: ( ruleXExpression )
            // InternalXcore.g:25432:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_2_1_0()); 
            }
            pushFollow(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:25441: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:25445:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25446:2: ( ruleXExpression )
            {
            // InternalXcore.g:25446:2: ( ruleXExpression )
            // InternalXcore.g:25447:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0_1_0()); 
            }
            pushFollow(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:25456:1: rule__XCasePart__FallThroughAssignment_3_1 : ( ( ',' ) ) ;
    public final void rule__XCasePart__FallThroughAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25460:1: ( ( ( ',' ) ) )
            // InternalXcore.g:25461:2: ( ( ',' ) )
            {
            // InternalXcore.g:25461:2: ( ( ',' ) )
            // InternalXcore.g:25462:3: ( ',' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
            }
            // InternalXcore.g:25463:3: ( ',' )
            // InternalXcore.g:25464:4: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
            }
            match(input,87,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:25475: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:25479:1: ( ( ruleJvmFormalParameter ) )
            // InternalXcore.g:25480:2: ( ruleJvmFormalParameter )
            {
            // InternalXcore.g:25480:2: ( ruleJvmFormalParameter )
            // InternalXcore.g:25481:3: ruleJvmFormalParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_0_0_3_0()); 
            }
            pushFollow(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:25490:1: rule__XForLoopExpression__ForExpressionAssignment_1 : ( ruleXExpression ) ;
    public final void rule__XForLoopExpression__ForExpressionAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25494:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25495:2: ( ruleXExpression )
            {
            // InternalXcore.g:25495:2: ( ruleXExpression )
            // InternalXcore.g:25496:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_1_0()); 
            }
            pushFollow(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:25505:1: rule__XForLoopExpression__EachExpressionAssignment_3 : ( ruleXExpression ) ;
    public final void rule__XForLoopExpression__EachExpressionAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25509:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25510:2: ( ruleXExpression )
            {
            // InternalXcore.g:25510:2: ( ruleXExpression )
            // InternalXcore.g:25511:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_3_0()); 
            }
            pushFollow(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:25520:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 : ( ruleXExpressionOrVarDeclaration ) ;
    public final void rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25524:1: ( ( ruleXExpressionOrVarDeclaration ) )
            // InternalXcore.g:25525:2: ( ruleXExpressionOrVarDeclaration )
            {
            // InternalXcore.g:25525:2: ( ruleXExpressionOrVarDeclaration )
            // InternalXcore.g:25526:3: ruleXExpressionOrVarDeclaration
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_0_0()); 
            }
            pushFollow(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:25535: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:25539:1: ( ( ruleXExpressionOrVarDeclaration ) )
            // InternalXcore.g:25540:2: ( ruleXExpressionOrVarDeclaration )
            {
            // InternalXcore.g:25540:2: ( ruleXExpressionOrVarDeclaration )
            // InternalXcore.g:25541:3: ruleXExpressionOrVarDeclaration
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_1_1_0()); 
            }
            pushFollow(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:25550:1: rule__XBasicForLoopExpression__ExpressionAssignment_5 : ( ruleXExpression ) ;
    public final void rule__XBasicForLoopExpression__ExpressionAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25554:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25555:2: ( ruleXExpression )
            {
            // InternalXcore.g:25555:2: ( ruleXExpression )
            // InternalXcore.g:25556:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionXExpressionParserRuleCall_5_0()); 
            }
            pushFollow(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:25565:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 : ( ruleXExpression ) ;
    public final void rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25569:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25570:2: ( ruleXExpression )
            {
            // InternalXcore.g:25570:2: ( ruleXExpression )
            // InternalXcore.g:25571:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_0_0()); 
            }
            pushFollow(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:25580: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:25584:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25585:2: ( ruleXExpression )
            {
            // InternalXcore.g:25585:2: ( ruleXExpression )
            // InternalXcore.g:25586:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_1_1_0()); 
            }
            pushFollow(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:25595:1: rule__XBasicForLoopExpression__EachExpressionAssignment_9 : ( ruleXExpression ) ;
    public final void rule__XBasicForLoopExpression__EachExpressionAssignment_9() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25599:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25600:2: ( ruleXExpression )
            {
            // InternalXcore.g:25600:2: ( ruleXExpression )
            // InternalXcore.g:25601:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_9_0()); 
            }
            pushFollow(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:25610:1: rule__XWhileExpression__PredicateAssignment_3 : ( ruleXExpression ) ;
    public final void rule__XWhileExpression__PredicateAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25614:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25615:2: ( ruleXExpression )
            {
            // InternalXcore.g:25615:2: ( ruleXExpression )
            // InternalXcore.g:25616:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0()); 
            }
            pushFollow(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:25625:1: rule__XWhileExpression__BodyAssignment_5 : ( ruleXExpression ) ;
    public final void rule__XWhileExpression__BodyAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25629:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25630:2: ( ruleXExpression )
            {
            // InternalXcore.g:25630:2: ( ruleXExpression )
            // InternalXcore.g:25631:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0()); 
            }
            pushFollow(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:25640:1: rule__XDoWhileExpression__BodyAssignment_2 : ( ruleXExpression ) ;
    public final void rule__XDoWhileExpression__BodyAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25644:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25645:2: ( ruleXExpression )
            {
            // InternalXcore.g:25645:2: ( ruleXExpression )
            // InternalXcore.g:25646:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0()); 
            }
            pushFollow(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:25655:1: rule__XDoWhileExpression__PredicateAssignment_5 : ( ruleXExpression ) ;
    public final void rule__XDoWhileExpression__PredicateAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25659:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25660:2: ( ruleXExpression )
            {
            // InternalXcore.g:25660:2: ( ruleXExpression )
            // InternalXcore.g:25661:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0()); 
            }
            pushFollow(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:25670:1: rule__XVariableDeclaration__WriteableAssignment_1_0 : ( ( 'var' ) ) ;
    public final void rule__XVariableDeclaration__WriteableAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25674:1: ( ( ( 'var' ) ) )
            // InternalXcore.g:25675:2: ( ( 'var' ) )
            {
            // InternalXcore.g:25675:2: ( ( 'var' ) )
            // InternalXcore.g:25676:3: ( 'var' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
            }
            // InternalXcore.g:25677:3: ( 'var' )
            // InternalXcore.g:25678:4: 'var'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
            }
            match(input,118,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:25689: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:25693:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:25694:2: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:25694:2: ( ruleJvmTypeReference )
            // InternalXcore.g:25695:3: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0()); 
            }
            pushFollow(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:25704: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:25708:1: ( ( ruleValidID ) )
            // InternalXcore.g:25709:2: ( ruleValidID )
            {
            // InternalXcore.g:25709:2: ( ruleValidID )
            // InternalXcore.g:25710:3: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0()); 
            }
            pushFollow(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:25719:1: rule__XVariableDeclaration__NameAssignment_2_1 : ( ruleValidID ) ;
    public final void rule__XVariableDeclaration__NameAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25723:1: ( ( ruleValidID ) )
            // InternalXcore.g:25724:2: ( ruleValidID )
            {
            // InternalXcore.g:25724:2: ( ruleValidID )
            // InternalXcore.g:25725:3: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0()); 
            }
            pushFollow(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:25734:1: rule__XVariableDeclaration__RightAssignment_3_1 : ( ruleXExpression ) ;
    public final void rule__XVariableDeclaration__RightAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25738:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25739:2: ( ruleXExpression )
            {
            // InternalXcore.g:25739:2: ( ruleXExpression )
            // InternalXcore.g:25740:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0()); 
            }
            pushFollow(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:25749:1: rule__JvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
    public final void rule__JvmFormalParameter__ParameterTypeAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25753:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:25754:2: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:25754:2: ( ruleJvmTypeReference )
            // InternalXcore.g:25755:3: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
            }
            pushFollow(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:25764:1: rule__JvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
    public final void rule__JvmFormalParameter__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25768:1: ( ( ruleValidID ) )
            // InternalXcore.g:25769:2: ( ruleValidID )
            {
            // InternalXcore.g:25769:2: ( ruleValidID )
            // InternalXcore.g:25770:3: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
            }
            pushFollow(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:25779:1: rule__FullJvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
    public final void rule__FullJvmFormalParameter__ParameterTypeAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25783:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:25784:2: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:25784:2: ( ruleJvmTypeReference )
            // InternalXcore.g:25785:3: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
            }
            pushFollow(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:25794:1: rule__FullJvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
    public final void rule__FullJvmFormalParameter__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25798:1: ( ( ruleValidID ) )
            // InternalXcore.g:25799:2: ( ruleValidID )
            {
            // InternalXcore.g:25799:2: ( ruleValidID )
            // InternalXcore.g:25800:3: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
            }
            pushFollow(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:25809:1: rule__XFeatureCall__TypeArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
    public final void rule__XFeatureCall__TypeArgumentsAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25813:1: ( ( ruleJvmArgumentTypeReference ) )
            // InternalXcore.g:25814:2: ( ruleJvmArgumentTypeReference )
            {
            // InternalXcore.g:25814:2: ( ruleJvmArgumentTypeReference )
            // InternalXcore.g:25815:3: ruleJvmArgumentTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
            }
            pushFollow(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:25824: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:25828:1: ( ( ruleJvmArgumentTypeReference ) )
            // InternalXcore.g:25829:2: ( ruleJvmArgumentTypeReference )
            {
            // InternalXcore.g:25829:2: ( ruleJvmArgumentTypeReference )
            // InternalXcore.g:25830:3: ruleJvmArgumentTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
            }
            pushFollow(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:25839:1: rule__XFeatureCall__FeatureAssignment_2 : ( ( ruleIdOrSuper ) ) ;
    public final void rule__XFeatureCall__FeatureAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25843:1: ( ( ( ruleIdOrSuper ) ) )
            // InternalXcore.g:25844:2: ( ( ruleIdOrSuper ) )
            {
            // InternalXcore.g:25844:2: ( ( ruleIdOrSuper ) )
            // InternalXcore.g:25845:3: ( ruleIdOrSuper )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0()); 
            }
            // InternalXcore.g:25846:3: ( ruleIdOrSuper )
            // InternalXcore.g:25847:4: ruleIdOrSuper
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_2_0_1()); 
            }
            pushFollow(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:25858:1: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 : ( ( '(' ) ) ;
    public final void rule__XFeatureCall__ExplicitOperationCallAssignment_3_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25862:1: ( ( ( '(' ) ) )
            // InternalXcore.g:25863:2: ( ( '(' ) )
            {
            // InternalXcore.g:25863:2: ( ( '(' ) )
            // InternalXcore.g:25864:3: ( '(' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
            }
            // InternalXcore.g:25865:3: ( '(' )
            // InternalXcore.g:25866:4: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
            }
            match(input,85,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:25877: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:25881:1: ( ( ruleXShortClosure ) )
            // InternalXcore.g:25882:2: ( ruleXShortClosure )
            {
            // InternalXcore.g:25882:2: ( ruleXShortClosure )
            // InternalXcore.g:25883:3: ruleXShortClosure
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0()); 
            }
            pushFollow(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:25892: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:25896:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25897:2: ( ruleXExpression )
            {
            // InternalXcore.g:25897:2: ( ruleXExpression )
            // InternalXcore.g:25898:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0()); 
            }
            pushFollow(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:25907: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:25911:1: ( ( ruleXExpression ) )
            // InternalXcore.g:25912:2: ( ruleXExpression )
            {
            // InternalXcore.g:25912:2: ( ruleXExpression )
            // InternalXcore.g:25913:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0()); 
            }
            pushFollow(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:25922:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_4 : ( ruleXClosure ) ;
    public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25926:1: ( ( ruleXClosure ) )
            // InternalXcore.g:25927:2: ( ruleXClosure )
            {
            // InternalXcore.g:25927:2: ( ruleXClosure )
            // InternalXcore.g:25928:3: ruleXClosure
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0()); 
            }
            pushFollow(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:25937:1: rule__XConstructorCall__ConstructorAssignment_2 : ( ( ruleQualifiedName ) ) ;
    public final void rule__XConstructorCall__ConstructorAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25941:1: ( ( ( ruleQualifiedName ) ) )
            // InternalXcore.g:25942:2: ( ( ruleQualifiedName ) )
            {
            // InternalXcore.g:25942:2: ( ( ruleQualifiedName ) )
            // InternalXcore.g:25943:3: ( ruleQualifiedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0()); 
            }
            // InternalXcore.g:25944:3: ( ruleQualifiedName )
            // InternalXcore.g:25945:4: ruleQualifiedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorQualifiedNameParserRuleCall_2_0_1()); 
            }
            pushFollow(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:25956:1: rule__XConstructorCall__TypeArgumentsAssignment_3_1 : ( ruleJvmArgumentTypeReference ) ;
    public final void rule__XConstructorCall__TypeArgumentsAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25960:1: ( ( ruleJvmArgumentTypeReference ) )
            // InternalXcore.g:25961:2: ( ruleJvmArgumentTypeReference )
            {
            // InternalXcore.g:25961:2: ( ruleJvmArgumentTypeReference )
            // InternalXcore.g:25962:3: ruleJvmArgumentTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0()); 
            }
            pushFollow(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:25971: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:25975:1: ( ( ruleJvmArgumentTypeReference ) )
            // InternalXcore.g:25976:2: ( ruleJvmArgumentTypeReference )
            {
            // InternalXcore.g:25976:2: ( ruleJvmArgumentTypeReference )
            // InternalXcore.g:25977:3: ruleJvmArgumentTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0()); 
            }
            pushFollow(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:25986:1: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 : ( ( '(' ) ) ;
    public final void rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:25990:1: ( ( ( '(' ) ) )
            // InternalXcore.g:25991:2: ( ( '(' ) )
            {
            // InternalXcore.g:25991:2: ( ( '(' ) )
            // InternalXcore.g:25992:3: ( '(' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
            }
            // InternalXcore.g:25993:3: ( '(' )
            // InternalXcore.g:25994:4: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
            }
            match(input,85,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:26005: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:26009:1: ( ( ruleXShortClosure ) )
            // InternalXcore.g:26010:2: ( ruleXShortClosure )
            {
            // InternalXcore.g:26010:2: ( ruleXShortClosure )
            // InternalXcore.g:26011:3: ruleXShortClosure
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0()); 
            }
            pushFollow(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:26020: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:26024:1: ( ( ruleXExpression ) )
            // InternalXcore.g:26025:2: ( ruleXExpression )
            {
            // InternalXcore.g:26025:2: ( ruleXExpression )
            // InternalXcore.g:26026:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0()); 
            }
            pushFollow(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:26035: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:26039:1: ( ( ruleXExpression ) )
            // InternalXcore.g:26040:2: ( ruleXExpression )
            {
            // InternalXcore.g:26040:2: ( ruleXExpression )
            // InternalXcore.g:26041:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0()); 
            }
            pushFollow(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:26050:1: rule__XConstructorCall__ArgumentsAssignment_5 : ( ruleXClosure ) ;
    public final void rule__XConstructorCall__ArgumentsAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:26054:1: ( ( ruleXClosure ) )
            // InternalXcore.g:26055:2: ( ruleXClosure )
            {
            // InternalXcore.g:26055:2: ( ruleXClosure )
            // InternalXcore.g:26056:3: ruleXClosure
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0()); 
            }
            pushFollow(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:26065:1: rule__XBooleanLiteral__IsTrueAssignment_1_1 : ( ( 'true' ) ) ;
    public final void rule__XBooleanLiteral__IsTrueAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:26069:1: ( ( ( 'true' ) ) )
            // InternalXcore.g:26070:2: ( ( 'true' ) )
            {
            // InternalXcore.g:26070:2: ( ( 'true' ) )
            // InternalXcore.g:26071:3: ( 'true' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
            }
            // InternalXcore.g:26072:3: ( 'true' )
            // InternalXcore.g:26073:4: 'true'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
            }
            match(input,119,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:26084:1: rule__XNumberLiteral__ValueAssignment_1 : ( ruleNumber ) ;
    public final void rule__XNumberLiteral__ValueAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:26088:1: ( ( ruleNumber ) )
            // InternalXcore.g:26089:2: ( ruleNumber )
            {
            // InternalXcore.g:26089:2: ( ruleNumber )
            // InternalXcore.g:26090:3: ruleNumber
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0()); 
            }
            pushFollow(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:26099:1: rule__XStringLiteral__ValueAssignment_1 : ( RULE_STRING ) ;
    public final void rule__XStringLiteral__ValueAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:26103:1: ( ( RULE_STRING ) )
            // InternalXcore.g:26104:2: ( RULE_STRING )
            {
            // InternalXcore.g:26104:2: ( RULE_STRING )
            // InternalXcore.g:26105:3: RULE_STRING
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0()); 
            }
            match(input,RULE_STRING,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:26114:1: rule__XTypeLiteral__TypeAssignment_3 : ( ( ruleQualifiedName ) ) ;
    public final void rule__XTypeLiteral__TypeAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:26118:1: ( ( ( ruleQualifiedName ) ) )
            // InternalXcore.g:26119:2: ( ( ruleQualifiedName ) )
            {
            // InternalXcore.g:26119:2: ( ( ruleQualifiedName ) )
            // InternalXcore.g:26120:3: ( ruleQualifiedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0()); 
            }
            // InternalXcore.g:26121:3: ( ruleQualifiedName )
            // InternalXcore.g:26122:4: ruleQualifiedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeQualifiedNameParserRuleCall_3_0_1()); 
            }
            pushFollow(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:26133:1: rule__XTypeLiteral__ArrayDimensionsAssignment_4 : ( ruleArrayBrackets ) ;
    public final void rule__XTypeLiteral__ArrayDimensionsAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:26137:1: ( ( ruleArrayBrackets ) )
            // InternalXcore.g:26138:2: ( ruleArrayBrackets )
            {
            // InternalXcore.g:26138:2: ( ruleArrayBrackets )
            // InternalXcore.g:26139:3: ruleArrayBrackets
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0()); 
            }
            pushFollow(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:26148:1: rule__XThrowExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
    public final void rule__XThrowExpression__ExpressionAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:26152:1: ( ( ruleXExpression ) )
            // InternalXcore.g:26153:2: ( ruleXExpression )
            {
            // InternalXcore.g:26153:2: ( ruleXExpression )
            // InternalXcore.g:26154:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
            }
            pushFollow(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:26163:1: rule__XReturnExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
    public final void rule__XReturnExpression__ExpressionAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:26167:1: ( ( ruleXExpression ) )
            // InternalXcore.g:26168:2: ( ruleXExpression )
            {
            // InternalXcore.g:26168:2: ( ruleXExpression )
            // InternalXcore.g:26169:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
            }
            pushFollow(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:26178:1: rule__XTryCatchFinallyExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
    public final void rule__XTryCatchFinallyExpression__ExpressionAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:26182:1: ( ( ruleXExpression ) )
            // InternalXcore.g:26183:2: ( ruleXExpression )
            {
            // InternalXcore.g:26183:2: ( ruleXExpression )
            // InternalXcore.g:26184:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
            }
            pushFollow(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:26193: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:26197:1: ( ( ruleXCatchClause ) )
            // InternalXcore.g:26198:2: ( ruleXCatchClause )
            {
            // InternalXcore.g:26198:2: ( ruleXCatchClause )
            // InternalXcore.g:26199:3: ruleXCatchClause
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0()); 
            }
            pushFollow(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:26208: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:26212:1: ( ( ruleXExpression ) )
            // InternalXcore.g:26213:2: ( ruleXExpression )
            {
            // InternalXcore.g:26213:2: ( ruleXExpression )
            // InternalXcore.g:26214:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0()); 
            }
            pushFollow(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:26223: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:26227:1: ( ( ruleXExpression ) )
            // InternalXcore.g:26228:2: ( ruleXExpression )
            {
            // InternalXcore.g:26228:2: ( ruleXExpression )
            // InternalXcore.g:26229:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0()); 
            }
            pushFollow(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:26238:1: rule__XSynchronizedExpression__ParamAssignment_1 : ( ruleXExpression ) ;
    public final void rule__XSynchronizedExpression__ParamAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:26242:1: ( ( ruleXExpression ) )
            // InternalXcore.g:26243:2: ( ruleXExpression )
            {
            // InternalXcore.g:26243:2: ( ruleXExpression )
            // InternalXcore.g:26244:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionAccess().getParamXExpressionParserRuleCall_1_0()); 
            }
            pushFollow(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:26253:1: rule__XSynchronizedExpression__ExpressionAssignment_3 : ( ruleXExpression ) ;
    public final void rule__XSynchronizedExpression__ExpressionAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:26257:1: ( ( ruleXExpression ) )
            // InternalXcore.g:26258:2: ( ruleXExpression )
            {
            // InternalXcore.g:26258:2: ( ruleXExpression )
            // InternalXcore.g:26259:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionAccess().getExpressionXExpressionParserRuleCall_3_0()); 
            }
            pushFollow(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:26268:1: rule__XCatchClause__DeclaredParamAssignment_2 : ( ruleFullJvmFormalParameter ) ;
    public final void rule__XCatchClause__DeclaredParamAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:26272:1: ( ( ruleFullJvmFormalParameter ) )
            // InternalXcore.g:26273:2: ( ruleFullJvmFormalParameter )
            {
            // InternalXcore.g:26273:2: ( ruleFullJvmFormalParameter )
            // InternalXcore.g:26274:3: ruleFullJvmFormalParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0()); 
            }
            pushFollow(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:26283:1: rule__XCatchClause__ExpressionAssignment_4 : ( ruleXExpression ) ;
    public final void rule__XCatchClause__ExpressionAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:26287:1: ( ( ruleXExpression ) )
            // InternalXcore.g:26288:2: ( ruleXExpression )
            {
            // InternalXcore.g:26288:2: ( ruleXExpression )
            // InternalXcore.g:26289:3: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0()); 
            }
            pushFollow(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:26298: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:26302:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:26303:2: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:26303:2: ( ruleJvmTypeReference )
            // InternalXcore.g:26304:3: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0()); 
            }
            pushFollow(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:26313: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:26317:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:26318:2: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:26318:2: ( ruleJvmTypeReference )
            // InternalXcore.g:26319:3: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0()); 
            }
            pushFollow(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:26328:1: rule__XFunctionTypeRef__ReturnTypeAssignment_2 : ( ruleJvmTypeReference ) ;
    public final void rule__XFunctionTypeRef__ReturnTypeAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:26332:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:26333:2: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:26333:2: ( ruleJvmTypeReference )
            // InternalXcore.g:26334:3: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0()); 
            }
            pushFollow(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:26343:1: rule__JvmParameterizedTypeReference__TypeAssignment_0 : ( ( ruleQualifiedName ) ) ;
    public final void rule__JvmParameterizedTypeReference__TypeAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:26347:1: ( ( ( ruleQualifiedName ) ) )
            // InternalXcore.g:26348:2: ( ( ruleQualifiedName ) )
            {
            // InternalXcore.g:26348:2: ( ( ruleQualifiedName ) )
            // InternalXcore.g:26349:3: ( ruleQualifiedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0()); 
            }
            // InternalXcore.g:26350:3: ( ruleQualifiedName )
            // InternalXcore.g:26351:4: ruleQualifiedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeQualifiedNameParserRuleCall_0_0_1()); 
            }
            pushFollow(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:26362:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
    public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:26366:1: ( ( ruleJvmArgumentTypeReference ) )
            // InternalXcore.g:26367:2: ( ruleJvmArgumentTypeReference )
            {
            // InternalXcore.g:26367:2: ( ruleJvmArgumentTypeReference )
            // InternalXcore.g:26368:3: ruleJvmArgumentTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
            }
            pushFollow(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:26377: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:26381:1: ( ( ruleJvmArgumentTypeReference ) )
            // InternalXcore.g:26382:2: ( ruleJvmArgumentTypeReference )
            {
            // InternalXcore.g:26382:2: ( ruleJvmArgumentTypeReference )
            // InternalXcore.g:26383:3: ruleJvmArgumentTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
            }
            pushFollow(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:26392: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:26396:1: ( ( ( ruleValidID ) ) )
            // InternalXcore.g:26397:2: ( ( ruleValidID ) )
            {
            // InternalXcore.g:26397:2: ( ( ruleValidID ) )
            // InternalXcore.g:26398:3: ( ruleValidID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0()); 
            }
            // InternalXcore.g:26399:3: ( ruleValidID )
            // InternalXcore.g:26400:4: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeValidIDParserRuleCall_1_4_1_0_1()); 
            }
            pushFollow(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:26411: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:26415:1: ( ( ruleJvmArgumentTypeReference ) )
            // InternalXcore.g:26416:2: ( ruleJvmArgumentTypeReference )
            {
            // InternalXcore.g:26416:2: ( ruleJvmArgumentTypeReference )
            // InternalXcore.g:26417:3: ruleJvmArgumentTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0()); 
            }
            pushFollow(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:26426: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:26430:1: ( ( ruleJvmArgumentTypeReference ) )
            // InternalXcore.g:26431:2: ( ruleJvmArgumentTypeReference )
            {
            // InternalXcore.g:26431:2: ( ruleJvmArgumentTypeReference )
            // InternalXcore.g:26432:3: ruleJvmArgumentTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0()); 
            }
            pushFollow(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:26441: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:26445:1: ( ( ruleJvmUpperBound ) )
            // InternalXcore.g:26446:2: ( ruleJvmUpperBound )
            {
            // InternalXcore.g:26446:2: ( ruleJvmUpperBound )
            // InternalXcore.g:26447:3: ruleJvmUpperBound
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0()); 
            }
            pushFollow(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:26456: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:26460:1: ( ( ruleJvmUpperBoundAnded ) )
            // InternalXcore.g:26461:2: ( ruleJvmUpperBoundAnded )
            {
            // InternalXcore.g:26461:2: ( ruleJvmUpperBoundAnded )
            // InternalXcore.g:26462:3: ruleJvmUpperBoundAnded
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0()); 
            }
            pushFollow(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:26471: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:26475:1: ( ( ruleJvmLowerBound ) )
            // InternalXcore.g:26476:2: ( ruleJvmLowerBound )
            {
            // InternalXcore.g:26476:2: ( ruleJvmLowerBound )
            // InternalXcore.g:26477:3: ruleJvmLowerBound
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0()); 
            }
            pushFollow(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:26486: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:26490:1: ( ( ruleJvmLowerBoundAnded ) )
            // InternalXcore.g:26491:2: ( ruleJvmLowerBoundAnded )
            {
            // InternalXcore.g:26491:2: ( ruleJvmLowerBoundAnded )
            // InternalXcore.g:26492:3: ruleJvmLowerBoundAnded
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0()); 
            }
            pushFollow(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:26501:1: rule__JvmUpperBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
    public final void rule__JvmUpperBound__TypeReferenceAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:26505:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:26506:2: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:26506:2: ( ruleJvmTypeReference )
            // InternalXcore.g:26507:3: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
            }
            pushFollow(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:26516:1: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
    public final void rule__JvmUpperBoundAnded__TypeReferenceAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:26520:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:26521:2: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:26521:2: ( ruleJvmTypeReference )
            // InternalXcore.g:26522:3: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
            }
            pushFollow(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:26531:1: rule__JvmLowerBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
    public final void rule__JvmLowerBound__TypeReferenceAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:26535:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:26536:2: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:26536:2: ( ruleJvmTypeReference )
            // InternalXcore.g:26537:3: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
            }
            pushFollow(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:26546:1: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
    public final void rule__JvmLowerBoundAnded__TypeReferenceAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:26550:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:26551:2: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:26551:2: ( ruleJvmTypeReference )
            // InternalXcore.g:26552:3: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
            }
            pushFollow(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:26561: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:26565:1: ( ( ( 'static' ) ) )
            // InternalXcore.g:26566:2: ( ( 'static' ) )
            {
            // InternalXcore.g:26566:2: ( ( 'static' ) )
            // InternalXcore.g:26567:3: ( 'static' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0()); 
            }
            // InternalXcore.g:26568:3: ( 'static' )
            // InternalXcore.g:26569:4: 'static'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0()); 
            }
            match(input,47,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:26580: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:26584:1: ( ( ( 'extension' ) ) )
            // InternalXcore.g:26585:2: ( ( 'extension' ) )
            {
            // InternalXcore.g:26585:2: ( ( 'extension' ) )
            // InternalXcore.g:26586:3: ( 'extension' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0()); 
            }
            // InternalXcore.g:26587:3: ( 'extension' )
            // InternalXcore.g:26588:4: 'extension'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0()); 
            }
            match(input,35,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:26599: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:26603:1: ( ( ( ruleQualifiedNameInStaticImport ) ) )
            // InternalXcore.g:26604:2: ( ( ruleQualifiedNameInStaticImport ) )
            {
            // InternalXcore.g:26604:2: ( ( ruleQualifiedNameInStaticImport ) )
            // InternalXcore.g:26605:3: ( ruleQualifiedNameInStaticImport )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_0_2_0()); 
            }
            // InternalXcore.g:26606:3: ( ruleQualifiedNameInStaticImport )
            // InternalXcore.g:26607:4: ruleQualifiedNameInStaticImport
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameInStaticImportParserRuleCall_1_0_2_0_1()); 
            }
            pushFollow(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:26618: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:26622:1: ( ( ( '*' ) ) )
            // InternalXcore.g:26623:2: ( ( '*' ) )
            {
            // InternalXcore.g:26623:2: ( ( '*' ) )
            // InternalXcore.g:26624:3: ( '*' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_1_0_3_0_0()); 
            }
            // InternalXcore.g:26625:3: ( '*' )
            // InternalXcore.g:26626:4: '*'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_1_0_3_0_0()); 
            }
            match(input,18,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:26637: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:26641:1: ( ( ruleValidID ) )
            // InternalXcore.g:26642:2: ( ruleValidID )
            {
            // InternalXcore.g:26642:2: ( ruleValidID )
            // InternalXcore.g:26643:3: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_1_0_3_1_0()); 
            }
            pushFollow(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:26652:1: rule__XImportDeclaration__ImportedTypeAssignment_1_1 : ( ( ruleQualifiedName ) ) ;
    public final void rule__XImportDeclaration__ImportedTypeAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:26656:1: ( ( ( ruleQualifiedName ) ) )
            // InternalXcore.g:26657:2: ( ( ruleQualifiedName ) )
            {
            // InternalXcore.g:26657:2: ( ( ruleQualifiedName ) )
            // InternalXcore.g:26658:3: ( ruleQualifiedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_1_0()); 
            }
            // InternalXcore.g:26659:3: ( ruleQualifiedName )
            // InternalXcore.g:26660:4: ruleQualifiedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameParserRuleCall_1_1_0_1()); 
            }
            pushFollow(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:26671:1: rule__XImportDeclaration__ImportedNamespaceAssignment_1_2 : ( ruleQualifiedNameWithWildcard ) ;
    public final void rule__XImportDeclaration__ImportedNamespaceAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXcore.g:26675:1: ( ( ruleQualifiedNameWithWildcard ) )
            // InternalXcore.g:26676:2: ( ruleQualifiedNameWithWildcard )
            {
            // InternalXcore.g:26676:2: ( ruleQualifiedNameWithWildcard )
            // InternalXcore.g:26677:3: ruleQualifiedNameWithWildcard
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_2_0()); 
            }
            pushFollow(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:3333:2: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) )
        // InternalXcore.g:3333:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
        {
        // InternalXcore.g:3333:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
        // InternalXcore.g:3334:3: ( rule__OpOther__Group_6_1_0__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); 
        }
        // InternalXcore.g:3335:3: ( rule__OpOther__Group_6_1_0__0 )
        // InternalXcore.g:3335:4: rule__OpOther__Group_6_1_0__0
        {
        pushFollow(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:3339:2: ( ( '<' ) )
        // InternalXcore.g:3339:2: ( '<' )
        {
        // InternalXcore.g:3339:2: ( '<' )
        // InternalXcore.g:3340:3: '<'
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
        }
        match(input,66,FOLLOW_2); if (state.failed) return ;

        }


        }
    }
    // $ANTLR end synpred83_InternalXcore

    // $ANTLR start synpred96_InternalXcore
    public final void synpred96_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:3552:2: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) )
        // InternalXcore.g:3552:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
        {
        // InternalXcore.g:3552:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
        // InternalXcore.g:3553:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); 
        }
        // InternalXcore.g:3554:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
        // InternalXcore.g:3554:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
        {
        pushFollow(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:3615:2: ( ( ( ruleXForLoopExpression ) ) )
        // InternalXcore.g:3615:2: ( ( ruleXForLoopExpression ) )
        {
        // InternalXcore.g:3615:2: ( ( ruleXForLoopExpression ) )
        // InternalXcore.g:3616:3: ( ruleXForLoopExpression )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); 
        }
        // InternalXcore.g:3617:3: ( ruleXForLoopExpression )
        // InternalXcore.g:3617:4: ruleXForLoopExpression
        {
        pushFollow(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:3621:2: ( ( ruleXBasicForLoopExpression ) )
        // InternalXcore.g:3621:2: ( ruleXBasicForLoopExpression )
        {
        // InternalXcore.g:3621:2: ( ruleXBasicForLoopExpression )
        // InternalXcore.g:3622:3: ruleXBasicForLoopExpression
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); 
        }
        pushFollow(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:3744:2: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) )
        // InternalXcore.g:3744:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
        {
        // InternalXcore.g:3744:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
        // InternalXcore.g:3745:3: ( rule__XSwitchExpression__Group_2_0__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); 
        }
        // InternalXcore.g:3746:3: ( rule__XSwitchExpression__Group_2_0__0 )
        // InternalXcore.g:3746:4: rule__XSwitchExpression__Group_2_0__0
        {
        pushFollow(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:3828:2: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) )
        // InternalXcore.g:3828:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
        {
        // InternalXcore.g:3828:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
        // InternalXcore.g:3829:3: ( rule__XVariableDeclaration__Group_2_0__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); 
        }
        // InternalXcore.g:3830:3: ( rule__XVariableDeclaration__Group_2_0__0 )
        // InternalXcore.g:3830:4: rule__XVariableDeclaration__Group_2_0__0
        {
        pushFollow(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:3849:2: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) )
        // InternalXcore.g:3849:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
        {
        // InternalXcore.g:3849:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
        // InternalXcore.g:3850:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); 
        }
        // InternalXcore.g:3851:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
        // InternalXcore.g:3851:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
        {
        pushFollow(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:3891:2: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) )
        // InternalXcore.g:3891:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
        {
        // InternalXcore.g:3891:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
        // InternalXcore.g:3892:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); 
        }
        // InternalXcore.g:3893:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
        // InternalXcore.g:3893:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
        {
        pushFollow(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:10378:3: ( rule__XAssignment__Group_1_1__0 )
        // InternalXcore.g:10378:3: rule__XAssignment__Group_1_1__0
        {
        pushFollow(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:10729:3: ( rule__XOrExpression__Group_1__0 )
        // InternalXcore.g:10729:3: rule__XOrExpression__Group_1__0
        {
        pushFollow(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:10918:3: ( rule__XAndExpression__Group_1__0 )
        // InternalXcore.g:10918:3: rule__XAndExpression__Group_1__0
        {
        pushFollow(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:11107:3: ( rule__XEqualityExpression__Group_1__0 )
        // InternalXcore.g:11107:3: rule__XEqualityExpression__Group_1__0
        {
        pushFollow(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:11296:3: ( rule__XRelationalExpression__Alternatives_1 )
        // InternalXcore.g:11296:3: rule__XRelationalExpression__Alternatives_1
        {
        pushFollow(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:11674:3: ( rule__XOtherOperatorExpression__Group_1__0 )
        // InternalXcore.g:11674:3: rule__XOtherOperatorExpression__Group_1__0
        {
        pushFollow(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:12187:3: ( rule__XAdditiveExpression__Group_1__0 )
        // InternalXcore.g:12187:3: rule__XAdditiveExpression__Group_1__0
        {
        pushFollow(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:12376:3: ( rule__XMultiplicativeExpression__Group_1__0 )
        // InternalXcore.g:12376:3: rule__XMultiplicativeExpression__Group_1__0
        {
        pushFollow(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:12646:3: ( rule__XCastedExpression__Group_1__0 )
        // InternalXcore.g:12646:3: rule__XCastedExpression__Group_1__0
        {
        pushFollow(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:12835:3: ( rule__XPostfixOperation__Group_1__0 )
        // InternalXcore.g:12835:3: rule__XPostfixOperation__Group_1__0
        {
        pushFollow(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:12970:3: ( rule__XMemberFeatureCall__Alternatives_1 )
        // InternalXcore.g:12970:3: rule__XMemberFeatureCall__Alternatives_1
        {
        pushFollow(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:13268:3: ( rule__XMemberFeatureCall__Group_1_1_3__0 )
        // InternalXcore.g:13268:3: rule__XMemberFeatureCall__Group_1_1_3__0
        {
        pushFollow(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:13294:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )
        // InternalXcore.g:13294:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
        {
        pushFollow(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:14267:3: ( rule__XClosure__Group_1__0 )
        // InternalXcore.g:14267:3: rule__XClosure__Group_1__0
        {
        pushFollow(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:15238:3: ( rule__XIfExpression__Group_6__0 )
        // InternalXcore.g:15238:3: rule__XIfExpression__Group_6__0
        {
        pushFollow(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:15698:3: ( rule__XSwitchExpression__Group_2_1_0__0 )
        // InternalXcore.g:15698:3: rule__XSwitchExpression__Group_2_1_0__0
        {
        pushFollow(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:17669:3: ( rule__XFeatureCall__Group_3__0 )
        // InternalXcore.g:17669:3: rule__XFeatureCall__Group_3__0
        {
        pushFollow(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:17695:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )
        // InternalXcore.g:17695:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
        {
        pushFollow(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:18155:3: ( rule__XConstructorCall__Group_3__0 )
        // InternalXcore.g:18155:3: rule__XConstructorCall__Group_3__0
        {
        pushFollow(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:18182:3: ( rule__XConstructorCall__Group_4__0 )
        // InternalXcore.g:18182:3: rule__XConstructorCall__Group_4__0
        {
        pushFollow(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:18208:3: ( rule__XConstructorCall__ArgumentsAssignment_5 )
        // InternalXcore.g:18208:3: rule__XConstructorCall__ArgumentsAssignment_5
        {
        pushFollow(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:19099:3: ( rule__XReturnExpression__ExpressionAssignment_2 )
        // InternalXcore.g:19099:3: rule__XReturnExpression__ExpressionAssignment_2
        {
        pushFollow(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:19241:4: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
        // InternalXcore.g:19241:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
        {
        pushFollow(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:19268:3: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )
        // InternalXcore.g:19268:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
        {
        pushFollow(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:19781:3: ( rule__QualifiedName__Group_1__0 )
        // InternalXcore.g:19781:3: rule__QualifiedName__Group_1__0
        {
        pushFollow(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:19997:3: ( rule__JvmTypeReference__Group_0_1__0 )
        // InternalXcore.g:19997:3: rule__JvmTypeReference__Group_0_1__0
        {
        pushFollow(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:20456:3: ( rule__JvmParameterizedTypeReference__Group_1__0 )
        // InternalXcore.g:20456:3: rule__JvmParameterizedTypeReference__Group_1__0
        {
        pushFollow(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:20591:3: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )
        // InternalXcore.g:20591:3: rule__JvmParameterizedTypeReference__Group_1_4__0
        {
        pushFollow(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:20726:3: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )
        // InternalXcore.g:20726:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
        {
        pushFollow(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:21713:2: ( rule__XDataType__UnorderedGroup_6__0 )
        // InternalXcore.g:21713:2: rule__XDataType__UnorderedGroup_6__0
        {
        pushFollow(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:21728:3: ( ({...}? => ( ( ( rule__XDataType__Group_6_0__0 ) ) ) ) )
        // InternalXcore.g:21728:3: ({...}? => ( ( ( rule__XDataType__Group_6_0__0 ) ) ) )
        {
        // InternalXcore.g:21728:3: ({...}? => ( ( ( rule__XDataType__Group_6_0__0 ) ) ) )
        // InternalXcore.g:21729:4: {...}? => ( ( ( 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:21729:105: ( ( ( rule__XDataType__Group_6_0__0 ) ) )
        // InternalXcore.g:21730:5: ( ( rule__XDataType__Group_6_0__0 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXDataTypeAccess().getUnorderedGroup_6(), 0);
        // InternalXcore.g:21736:5: ( ( rule__XDataType__Group_6_0__0 ) )
        // InternalXcore.g:21737:6: ( rule__XDataType__Group_6_0__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXDataTypeAccess().getGroup_6_0()); 
        }
        // InternalXcore.g:21738:6: ( rule__XDataType__Group_6_0__0 )
        // InternalXcore.g:21738:7: rule__XDataType__Group_6_0__0
        {
        pushFollow(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:21772:2: ( rule__XDataType__UnorderedGroup_6__1 )
        // InternalXcore.g:21772:2: rule__XDataType__UnorderedGroup_6__1
        {
        pushFollow(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:21796:2: ( rule__XAttribute__UnorderedGroup_2__0 )
        // InternalXcore.g:21796:2: rule__XAttribute__UnorderedGroup_2__0
        {
        pushFollow(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:21811:3: ( ({...}? => ( ( ( rule__XAttribute__UnorderedAssignment_2_0 ) ) ) ) )
        // InternalXcore.g:21811:3: ({...}? => ( ( ( rule__XAttribute__UnorderedAssignment_2_0 ) ) ) )
        {
        // InternalXcore.g:21811:3: ({...}? => ( ( ( rule__XAttribute__UnorderedAssignment_2_0 ) ) ) )
        // InternalXcore.g:21812:4: {...}? => ( ( ( 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:21812:106: ( ( ( rule__XAttribute__UnorderedAssignment_2_0 ) ) )
        // InternalXcore.g:21813:5: ( ( rule__XAttribute__UnorderedAssignment_2_0 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 0);
        // InternalXcore.g:21819:5: ( ( rule__XAttribute__UnorderedAssignment_2_0 ) )
        // InternalXcore.g:21820:6: ( rule__XAttribute__UnorderedAssignment_2_0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXAttributeAccess().getUnorderedAssignment_2_0()); 
        }
        // InternalXcore.g:21821:6: ( rule__XAttribute__UnorderedAssignment_2_0 )
        // InternalXcore.g:21821:7: rule__XAttribute__UnorderedAssignment_2_0
        {
        pushFollow(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:21826:3: ( ({...}? => ( ( ( rule__XAttribute__UniqueAssignment_2_1 ) ) ) ) )
        // InternalXcore.g:21826:3: ({...}? => ( ( ( rule__XAttribute__UniqueAssignment_2_1 ) ) ) )
        {
        // InternalXcore.g:21826:3: ({...}? => ( ( ( rule__XAttribute__UniqueAssignment_2_1 ) ) ) )
        // InternalXcore.g:21827:4: {...}? => ( ( ( 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:21827:106: ( ( ( rule__XAttribute__UniqueAssignment_2_1 ) ) )
        // InternalXcore.g:21828:5: ( ( rule__XAttribute__UniqueAssignment_2_1 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 1);
        // InternalXcore.g:21834:5: ( ( rule__XAttribute__UniqueAssignment_2_1 ) )
        // InternalXcore.g:21835:6: ( rule__XAttribute__UniqueAssignment_2_1 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXAttributeAccess().getUniqueAssignment_2_1()); 
        }
        // InternalXcore.g:21836:6: ( rule__XAttribute__UniqueAssignment_2_1 )
        // InternalXcore.g:21836:7: rule__XAttribute__UniqueAssignment_2_1
        {
        pushFollow(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:21841:3: ( ({...}? => ( ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) ) ) ) )
        // InternalXcore.g:21841:3: ({...}? => ( ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) ) ) )
        {
        // InternalXcore.g:21841:3: ({...}? => ( ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) ) ) )
        // InternalXcore.g:21842:4: {...}? => ( ( ( 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:21842:106: ( ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) ) )
        // InternalXcore.g:21843:5: ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 2);
        // InternalXcore.g:21849:5: ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) )
        // InternalXcore.g:21850:6: ( rule__XAttribute__ReadonlyAssignment_2_2 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXAttributeAccess().getReadonlyAssignment_2_2()); 
        }
        // InternalXcore.g:21851:6: ( rule__XAttribute__ReadonlyAssignment_2_2 )
        // InternalXcore.g:21851:7: rule__XAttribute__ReadonlyAssignment_2_2
        {
        pushFollow(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:21856:3: ( ({...}? => ( ( ( rule__XAttribute__TransientAssignment_2_3 ) ) ) ) )
        // InternalXcore.g:21856:3: ({...}? => ( ( ( rule__XAttribute__TransientAssignment_2_3 ) ) ) )
        {
        // InternalXcore.g:21856:3: ({...}? => ( ( ( rule__XAttribute__TransientAssignment_2_3 ) ) ) )
        // InternalXcore.g:21857:4: {...}? => ( ( ( 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:21857:106: ( ( ( rule__XAttribute__TransientAssignment_2_3 ) ) )
        // InternalXcore.g:21858:5: ( ( rule__XAttribute__TransientAssignment_2_3 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 3);
        // InternalXcore.g:21864:5: ( ( rule__XAttribute__TransientAssignment_2_3 ) )
        // InternalXcore.g:21865:6: ( rule__XAttribute__TransientAssignment_2_3 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXAttributeAccess().getTransientAssignment_2_3()); 
        }
        // InternalXcore.g:21866:6: ( rule__XAttribute__TransientAssignment_2_3 )
        // InternalXcore.g:21866:7: rule__XAttribute__TransientAssignment_2_3
        {
        pushFollow(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:21871:3: ( ({...}? => ( ( ( rule__XAttribute__VolatileAssignment_2_4 ) ) ) ) )
        // InternalXcore.g:21871:3: ({...}? => ( ( ( rule__XAttribute__VolatileAssignment_2_4 ) ) ) )
        {
        // InternalXcore.g:21871:3: ({...}? => ( ( ( rule__XAttribute__VolatileAssignment_2_4 ) ) ) )
        // InternalXcore.g:21872:4: {...}? => ( ( ( 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:21872:106: ( ( ( rule__XAttribute__VolatileAssignment_2_4 ) ) )
        // InternalXcore.g:21873:5: ( ( rule__XAttribute__VolatileAssignment_2_4 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 4);
        // InternalXcore.g:21879:5: ( ( rule__XAttribute__VolatileAssignment_2_4 ) )
        // InternalXcore.g:21880:6: ( rule__XAttribute__VolatileAssignment_2_4 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXAttributeAccess().getVolatileAssignment_2_4()); 
        }
        // InternalXcore.g:21881:6: ( rule__XAttribute__VolatileAssignment_2_4 )
        // InternalXcore.g:21881:7: rule__XAttribute__VolatileAssignment_2_4
        {
        pushFollow(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:21886:3: ( ({...}? => ( ( ( rule__XAttribute__UnsettableAssignment_2_5 ) ) ) ) )
        // InternalXcore.g:21886:3: ({...}? => ( ( ( rule__XAttribute__UnsettableAssignment_2_5 ) ) ) )
        {
        // InternalXcore.g:21886:3: ({...}? => ( ( ( rule__XAttribute__UnsettableAssignment_2_5 ) ) ) )
        // InternalXcore.g:21887:4: {...}? => ( ( ( 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:21887:106: ( ( ( rule__XAttribute__UnsettableAssignment_2_5 ) ) )
        // InternalXcore.g:21888:5: ( ( rule__XAttribute__UnsettableAssignment_2_5 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 5);
        // InternalXcore.g:21894:5: ( ( rule__XAttribute__UnsettableAssignment_2_5 ) )
        // InternalXcore.g:21895:6: ( rule__XAttribute__UnsettableAssignment_2_5 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXAttributeAccess().getUnsettableAssignment_2_5()); 
        }
        // InternalXcore.g:21896:6: ( rule__XAttribute__UnsettableAssignment_2_5 )
        // InternalXcore.g:21896:7: rule__XAttribute__UnsettableAssignment_2_5
        {
        pushFollow(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:21901:3: ( ({...}? => ( ( ( rule__XAttribute__DerivedAssignment_2_6 ) ) ) ) )
        // InternalXcore.g:21901:3: ({...}? => ( ( ( rule__XAttribute__DerivedAssignment_2_6 ) ) ) )
        {
        // InternalXcore.g:21901:3: ({...}? => ( ( ( rule__XAttribute__DerivedAssignment_2_6 ) ) ) )
        // InternalXcore.g:21902:4: {...}? => ( ( ( 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:21902:106: ( ( ( rule__XAttribute__DerivedAssignment_2_6 ) ) )
        // InternalXcore.g:21903:5: ( ( rule__XAttribute__DerivedAssignment_2_6 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 6);
        // InternalXcore.g:21909:5: ( ( rule__XAttribute__DerivedAssignment_2_6 ) )
        // InternalXcore.g:21910:6: ( rule__XAttribute__DerivedAssignment_2_6 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXAttributeAccess().getDerivedAssignment_2_6()); 
        }
        // InternalXcore.g:21911:6: ( rule__XAttribute__DerivedAssignment_2_6 )
        // InternalXcore.g:21911:7: rule__XAttribute__DerivedAssignment_2_6
        {
        pushFollow(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:21945:2: ( rule__XAttribute__UnorderedGroup_2__1 )
        // InternalXcore.g:21945:2: rule__XAttribute__UnorderedGroup_2__1
        {
        pushFollow(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:21957:2: ( rule__XAttribute__UnorderedGroup_2__2 )
        // InternalXcore.g:21957:2: rule__XAttribute__UnorderedGroup_2__2
        {
        pushFollow(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:21969:2: ( rule__XAttribute__UnorderedGroup_2__3 )
        // InternalXcore.g:21969:2: rule__XAttribute__UnorderedGroup_2__3
        {
        pushFollow(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:21981:2: ( rule__XAttribute__UnorderedGroup_2__4 )
        // InternalXcore.g:21981:2: rule__XAttribute__UnorderedGroup_2__4
        {
        pushFollow(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:21993:2: ( rule__XAttribute__UnorderedGroup_2__5 )
        // InternalXcore.g:21993:2: rule__XAttribute__UnorderedGroup_2__5
        {
        pushFollow(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:22005:2: ( rule__XAttribute__UnorderedGroup_2__6 )
        // InternalXcore.g:22005:2: rule__XAttribute__UnorderedGroup_2__6
        {
        pushFollow(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:22017:2: ( rule__XAttribute__UnorderedGroup_2__7 )
        // InternalXcore.g:22017:2: rule__XAttribute__UnorderedGroup_2__7
        {
        pushFollow(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:22041:2: ( rule__XAttribute__UnorderedGroup_7__0 )
        // InternalXcore.g:22041:2: rule__XAttribute__UnorderedGroup_7__0
        {
        pushFollow(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:22056:3: ( ({...}? => ( ( ( rule__XAttribute__Group_7_0__0 ) ) ) ) )
        // InternalXcore.g:22056:3: ({...}? => ( ( ( rule__XAttribute__Group_7_0__0 ) ) ) )
        {
        // InternalXcore.g:22056:3: ({...}? => ( ( ( rule__XAttribute__Group_7_0__0 ) ) ) )
        // InternalXcore.g:22057:4: {...}? => ( ( ( 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:22057:106: ( ( ( rule__XAttribute__Group_7_0__0 ) ) )
        // InternalXcore.g:22058:5: ( ( rule__XAttribute__Group_7_0__0 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 0);
        // InternalXcore.g:22064:5: ( ( rule__XAttribute__Group_7_0__0 ) )
        // InternalXcore.g:22065:6: ( rule__XAttribute__Group_7_0__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXAttributeAccess().getGroup_7_0()); 
        }
        // InternalXcore.g:22066:6: ( rule__XAttribute__Group_7_0__0 )
        // InternalXcore.g:22066:7: rule__XAttribute__Group_7_0__0
        {
        pushFollow(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:22071:3: ( ({...}? => ( ( ( rule__XAttribute__Group_7_1__0 ) ) ) ) )
        // InternalXcore.g:22071:3: ({...}? => ( ( ( rule__XAttribute__Group_7_1__0 ) ) ) )
        {
        // InternalXcore.g:22071:3: ({...}? => ( ( ( rule__XAttribute__Group_7_1__0 ) ) ) )
        // InternalXcore.g:22072:4: {...}? => ( ( ( 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:22072:106: ( ( ( rule__XAttribute__Group_7_1__0 ) ) )
        // InternalXcore.g:22073:5: ( ( rule__XAttribute__Group_7_1__0 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 1);
        // InternalXcore.g:22079:5: ( ( rule__XAttribute__Group_7_1__0 ) )
        // InternalXcore.g:22080:6: ( rule__XAttribute__Group_7_1__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXAttributeAccess().getGroup_7_1()); 
        }
        // InternalXcore.g:22081:6: ( rule__XAttribute__Group_7_1__0 )
        // InternalXcore.g:22081:7: rule__XAttribute__Group_7_1__0
        {
        pushFollow(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:22086:3: ( ({...}? => ( ( ( rule__XAttribute__Group_7_2__0 ) ) ) ) )
        // InternalXcore.g:22086:3: ({...}? => ( ( ( rule__XAttribute__Group_7_2__0 ) ) ) )
        {
        // InternalXcore.g:22086:3: ({...}? => ( ( ( rule__XAttribute__Group_7_2__0 ) ) ) )
        // InternalXcore.g:22087:4: {...}? => ( ( ( 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:22087:106: ( ( ( rule__XAttribute__Group_7_2__0 ) ) )
        // InternalXcore.g:22088:5: ( ( rule__XAttribute__Group_7_2__0 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 2);
        // InternalXcore.g:22094:5: ( ( rule__XAttribute__Group_7_2__0 ) )
        // InternalXcore.g:22095:6: ( rule__XAttribute__Group_7_2__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXAttributeAccess().getGroup_7_2()); 
        }
        // InternalXcore.g:22096:6: ( rule__XAttribute__Group_7_2__0 )
        // InternalXcore.g:22096:7: rule__XAttribute__Group_7_2__0
        {
        pushFollow(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:22130:2: ( rule__XAttribute__UnorderedGroup_7__1 )
        // InternalXcore.g:22130:2: rule__XAttribute__UnorderedGroup_7__1
        {
        pushFollow(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:22142:2: ( rule__XAttribute__UnorderedGroup_7__2 )
        // InternalXcore.g:22142:2: rule__XAttribute__UnorderedGroup_7__2
        {
        pushFollow(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:22154:2: ( rule__XAttribute__UnorderedGroup_7__3 )
        // InternalXcore.g:22154:2: rule__XAttribute__UnorderedGroup_7__3
        {
        pushFollow(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:22178:2: ( rule__XReference__UnorderedGroup_3__0 )
        // InternalXcore.g:22178:2: rule__XReference__UnorderedGroup_3__0
        {
        pushFollow(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:22193:3: ( ({...}? => ( ( ( rule__XReference__UnorderedAssignment_3_0 ) ) ) ) )
        // InternalXcore.g:22193:3: ({...}? => ( ( ( rule__XReference__UnorderedAssignment_3_0 ) ) ) )
        {
        // InternalXcore.g:22193:3: ({...}? => ( ( ( rule__XReference__UnorderedAssignment_3_0 ) ) ) )
        // InternalXcore.g:22194:4: {...}? => ( ( ( 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:22194:106: ( ( ( rule__XReference__UnorderedAssignment_3_0 ) ) )
        // InternalXcore.g:22195:5: ( ( rule__XReference__UnorderedAssignment_3_0 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 0);
        // InternalXcore.g:22201:5: ( ( rule__XReference__UnorderedAssignment_3_0 ) )
        // InternalXcore.g:22202:6: ( rule__XReference__UnorderedAssignment_3_0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXReferenceAccess().getUnorderedAssignment_3_0()); 
        }
        // InternalXcore.g:22203:6: ( rule__XReference__UnorderedAssignment_3_0 )
        // InternalXcore.g:22203:7: rule__XReference__UnorderedAssignment_3_0
        {
        pushFollow(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:22208:3: ( ({...}? => ( ( ( rule__XReference__UniqueAssignment_3_1 ) ) ) ) )
        // InternalXcore.g:22208:3: ({...}? => ( ( ( rule__XReference__UniqueAssignment_3_1 ) ) ) )
        {
        // InternalXcore.g:22208:3: ({...}? => ( ( ( rule__XReference__UniqueAssignment_3_1 ) ) ) )
        // InternalXcore.g:22209:4: {...}? => ( ( ( 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:22209:106: ( ( ( rule__XReference__UniqueAssignment_3_1 ) ) )
        // InternalXcore.g:22210:5: ( ( rule__XReference__UniqueAssignment_3_1 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 1);
        // InternalXcore.g:22216:5: ( ( rule__XReference__UniqueAssignment_3_1 ) )
        // InternalXcore.g:22217:6: ( rule__XReference__UniqueAssignment_3_1 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXReferenceAccess().getUniqueAssignment_3_1()); 
        }
        // InternalXcore.g:22218:6: ( rule__XReference__UniqueAssignment_3_1 )
        // InternalXcore.g:22218:7: rule__XReference__UniqueAssignment_3_1
        {
        pushFollow(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:22223:3: ( ({...}? => ( ( ( rule__XReference__ReadonlyAssignment_3_2 ) ) ) ) )
        // InternalXcore.g:22223:3: ({...}? => ( ( ( rule__XReference__ReadonlyAssignment_3_2 ) ) ) )
        {
        // InternalXcore.g:22223:3: ({...}? => ( ( ( rule__XReference__ReadonlyAssignment_3_2 ) ) ) )
        // InternalXcore.g:22224:4: {...}? => ( ( ( 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:22224:106: ( ( ( rule__XReference__ReadonlyAssignment_3_2 ) ) )
        // InternalXcore.g:22225:5: ( ( rule__XReference__ReadonlyAssignment_3_2 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 2);
        // InternalXcore.g:22231:5: ( ( rule__XReference__ReadonlyAssignment_3_2 ) )
        // InternalXcore.g:22232:6: ( rule__XReference__ReadonlyAssignment_3_2 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXReferenceAccess().getReadonlyAssignment_3_2()); 
        }
        // InternalXcore.g:22233:6: ( rule__XReference__ReadonlyAssignment_3_2 )
        // InternalXcore.g:22233:7: rule__XReference__ReadonlyAssignment_3_2
        {
        pushFollow(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:22238:3: ( ({...}? => ( ( ( rule__XReference__TransientAssignment_3_3 ) ) ) ) )
        // InternalXcore.g:22238:3: ({...}? => ( ( ( rule__XReference__TransientAssignment_3_3 ) ) ) )
        {
        // InternalXcore.g:22238:3: ({...}? => ( ( ( rule__XReference__TransientAssignment_3_3 ) ) ) )
        // InternalXcore.g:22239:4: {...}? => ( ( ( 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:22239:106: ( ( ( rule__XReference__TransientAssignment_3_3 ) ) )
        // InternalXcore.g:22240:5: ( ( rule__XReference__TransientAssignment_3_3 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 3);
        // InternalXcore.g:22246:5: ( ( rule__XReference__TransientAssignment_3_3 ) )
        // InternalXcore.g:22247:6: ( rule__XReference__TransientAssignment_3_3 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXReferenceAccess().getTransientAssignment_3_3()); 
        }
        // InternalXcore.g:22248:6: ( rule__XReference__TransientAssignment_3_3 )
        // InternalXcore.g:22248:7: rule__XReference__TransientAssignment_3_3
        {
        pushFollow(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:22253:3: ( ({...}? => ( ( ( rule__XReference__VolatileAssignment_3_4 ) ) ) ) )
        // InternalXcore.g:22253:3: ({...}? => ( ( ( rule__XReference__VolatileAssignment_3_4 ) ) ) )
        {
        // InternalXcore.g:22253:3: ({...}? => ( ( ( rule__XReference__VolatileAssignment_3_4 ) ) ) )
        // InternalXcore.g:22254:4: {...}? => ( ( ( 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:22254:106: ( ( ( rule__XReference__VolatileAssignment_3_4 ) ) )
        // InternalXcore.g:22255:5: ( ( rule__XReference__VolatileAssignment_3_4 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 4);
        // InternalXcore.g:22261:5: ( ( rule__XReference__VolatileAssignment_3_4 ) )
        // InternalXcore.g:22262:6: ( rule__XReference__VolatileAssignment_3_4 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXReferenceAccess().getVolatileAssignment_3_4()); 
        }
        // InternalXcore.g:22263:6: ( rule__XReference__VolatileAssignment_3_4 )
        // InternalXcore.g:22263:7: rule__XReference__VolatileAssignment_3_4
        {
        pushFollow(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:22268:3: ( ({...}? => ( ( ( rule__XReference__UnsettableAssignment_3_5 ) ) ) ) )
        // InternalXcore.g:22268:3: ({...}? => ( ( ( rule__XReference__UnsettableAssignment_3_5 ) ) ) )
        {
        // InternalXcore.g:22268:3: ({...}? => ( ( ( rule__XReference__UnsettableAssignment_3_5 ) ) ) )
        // InternalXcore.g:22269:4: {...}? => ( ( ( 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:22269:106: ( ( ( rule__XReference__UnsettableAssignment_3_5 ) ) )
        // InternalXcore.g:22270:5: ( ( rule__XReference__UnsettableAssignment_3_5 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 5);
        // InternalXcore.g:22276:5: ( ( rule__XReference__UnsettableAssignment_3_5 ) )
        // InternalXcore.g:22277:6: ( rule__XReference__UnsettableAssignment_3_5 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXReferenceAccess().getUnsettableAssignment_3_5()); 
        }
        // InternalXcore.g:22278:6: ( rule__XReference__UnsettableAssignment_3_5 )
        // InternalXcore.g:22278:7: rule__XReference__UnsettableAssignment_3_5
        {
        pushFollow(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:22312:2: ( rule__XReference__UnorderedGroup_3__1 )
        // InternalXcore.g:22312:2: rule__XReference__UnorderedGroup_3__1
        {
        pushFollow(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:22324:2: ( rule__XReference__UnorderedGroup_3__2 )
        // InternalXcore.g:22324:2: rule__XReference__UnorderedGroup_3__2
        {
        pushFollow(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:22336:2: ( rule__XReference__UnorderedGroup_3__3 )
        // InternalXcore.g:22336:2: rule__XReference__UnorderedGroup_3__3
        {
        pushFollow(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:22348:2: ( rule__XReference__UnorderedGroup_3__4 )
        // InternalXcore.g:22348:2: rule__XReference__UnorderedGroup_3__4
        {
        pushFollow(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:22360:2: ( rule__XReference__UnorderedGroup_3__5 )
        // InternalXcore.g:22360:2: rule__XReference__UnorderedGroup_3__5
        {
        pushFollow(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:22372:2: ( rule__XReference__UnorderedGroup_3__6 )
        // InternalXcore.g:22372:2: rule__XReference__UnorderedGroup_3__6
        {
        pushFollow(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:22396:2: ( rule__XReference__UnorderedGroup_9__0 )
        // InternalXcore.g:22396:2: rule__XReference__UnorderedGroup_9__0
        {
        pushFollow(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:22411:3: ( ({...}? => ( ( ( rule__XReference__Group_9_0__0 ) ) ) ) )
        // InternalXcore.g:22411:3: ({...}? => ( ( ( rule__XReference__Group_9_0__0 ) ) ) )
        {
        // InternalXcore.g:22411:3: ({...}? => ( ( ( rule__XReference__Group_9_0__0 ) ) ) )
        // InternalXcore.g:22412:4: {...}? => ( ( ( 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:22412:106: ( ( ( rule__XReference__Group_9_0__0 ) ) )
        // InternalXcore.g:22413:5: ( ( rule__XReference__Group_9_0__0 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 0);
        // InternalXcore.g:22419:5: ( ( rule__XReference__Group_9_0__0 ) )
        // InternalXcore.g:22420:6: ( rule__XReference__Group_9_0__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXReferenceAccess().getGroup_9_0()); 
        }
        // InternalXcore.g:22421:6: ( rule__XReference__Group_9_0__0 )
        // InternalXcore.g:22421:7: rule__XReference__Group_9_0__0
        {
        pushFollow(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:22426:3: ( ({...}? => ( ( ( rule__XReference__Group_9_1__0 ) ) ) ) )
        // InternalXcore.g:22426:3: ({...}? => ( ( ( rule__XReference__Group_9_1__0 ) ) ) )
        {
        // InternalXcore.g:22426:3: ({...}? => ( ( ( rule__XReference__Group_9_1__0 ) ) ) )
        // InternalXcore.g:22427:4: {...}? => ( ( ( 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:22427:106: ( ( ( rule__XReference__Group_9_1__0 ) ) )
        // InternalXcore.g:22428:5: ( ( rule__XReference__Group_9_1__0 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 1);
        // InternalXcore.g:22434:5: ( ( rule__XReference__Group_9_1__0 ) )
        // InternalXcore.g:22435:6: ( rule__XReference__Group_9_1__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXReferenceAccess().getGroup_9_1()); 
        }
        // InternalXcore.g:22436:6: ( rule__XReference__Group_9_1__0 )
        // InternalXcore.g:22436:7: rule__XReference__Group_9_1__0
        {
        pushFollow(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:22441:3: ( ({...}? => ( ( ( rule__XReference__Group_9_2__0 ) ) ) ) )
        // InternalXcore.g:22441:3: ({...}? => ( ( ( rule__XReference__Group_9_2__0 ) ) ) )
        {
        // InternalXcore.g:22441:3: ({...}? => ( ( ( rule__XReference__Group_9_2__0 ) ) ) )
        // InternalXcore.g:22442:4: {...}? => ( ( ( 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:22442:106: ( ( ( rule__XReference__Group_9_2__0 ) ) )
        // InternalXcore.g:22443:5: ( ( rule__XReference__Group_9_2__0 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 2);
        // InternalXcore.g:22449:5: ( ( rule__XReference__Group_9_2__0 ) )
        // InternalXcore.g:22450:6: ( rule__XReference__Group_9_2__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXReferenceAccess().getGroup_9_2()); 
        }
        // InternalXcore.g:22451:6: ( rule__XReference__Group_9_2__0 )
        // InternalXcore.g:22451:7: rule__XReference__Group_9_2__0
        {
        pushFollow(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:22485:2: ( rule__XReference__UnorderedGroup_9__1 )
        // InternalXcore.g:22485:2: rule__XReference__UnorderedGroup_9__1
        {
        pushFollow(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:22497:2: ( rule__XReference__UnorderedGroup_9__2 )
        // InternalXcore.g:22497:2: rule__XReference__UnorderedGroup_9__2
        {
        pushFollow(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:22509:2: ( rule__XReference__UnorderedGroup_9__3 )
        // InternalXcore.g:22509:2: rule__XReference__UnorderedGroup_9__3
        {
        pushFollow(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 "2518: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 "2539: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 "2587: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 "3085: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 "3244: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 "3478: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 "3547: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 "3568: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 "3739: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 "3823: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 "3844: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 "3886: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 "4075: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 "10378:2: ( 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 11674:2: ( 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 "13268:2: ( 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 "13294:2: ( 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 "14267:2: ( 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 "15698:2: ( 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 "17669:2: ( 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 "17695:2: ( 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 "18155:2: ( 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 "18182:2: ( 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 "18208:2: ( 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 "19099:2: ( 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 19781:2: ( 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 "20456:2: ( 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 20591:2: ( 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 "20726:2: ( 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 "21796: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 "21945: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 "21957: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 "21969: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 "21981: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 "21993: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 "22005: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 "22017: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 "22041: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 "22130: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 "22142: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 "22154: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 "22396: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 "22485: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 "22497: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 "22509: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;
        }
    }
 

    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});

}
