InternalXtext.g:654:1: ruleConjunction : ( ( rule__Conjunction__Group__0 ) ) ;
490709
public final void ruleConjunction() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXtext.g:658:2: ( ( ( rule__Conjunction__Group__0 ) ) )
            // InternalXtext.g:659:2: ( ( rule__Conjunction__Group__0 ) )
            {
            // InternalXtext.g:659:2: ( ( rule__Conjunction__Group__0 ) )
            // InternalXtext.g:660:3: ( rule__Conjunction__Group__0 )
            {
             before(grammarAccess.getConjunctionAccess().getGroup()); 
            // InternalXtext.g:661:3: ( rule__Conjunction__Group__0 )
            // InternalXtext.g:661:4: rule__Conjunction__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__Conjunction__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getConjunctionAccess().getGroup()); 

            }


            }

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

            	restoreStackSize(stackSize);

        }
        return ;
    }
18388
public final void ruleTerminalToken() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXtext.g:1183:2: ( ( ( rule__TerminalToken__Group__0 ) ) )
            // InternalXtext.g:1184:2: ( ( rule__TerminalToken__Group__0 ) )
            {
            // InternalXtext.g:1184:2: ( ( rule__TerminalToken__Group__0 ) )
            // InternalXtext.g:1185:3: ( rule__TerminalToken__Group__0 )
            {
             before(grammarAccess.getTerminalTokenAccess().getGroup()); 
            // InternalXtext.g:1186:3: ( rule__TerminalToken__Group__0 )
            // InternalXtext.g:1186:4: rule__TerminalToken__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__TerminalToken__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getTerminalTokenAccess().getGroup()); 

            }


            }

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

            	restoreStackSize(stackSize);

        }
        return ;
    }
681593
public final EObject ruleConditionalBranch() throws RecognitionException {
        EObject current = null;

        Token otherlv_2=null;
        Token otherlv_4=null;
        EObject this_UnorderedGroup_0 = null;

        EObject lv_guardCondition_3_0 = null;

        EObject lv_elements_5_0 = null;



        	enterRule();

        try {
            // InternalXtext.g:1048:2: ( (this_UnorderedGroup_0= ruleUnorderedGroup | ( () otherlv_2= '<' ( (lv_guardCondition_3_0= ruleDisjunction ) ) otherlv_4= '>' ( (lv_elements_5_0= ruleAbstractToken ) )+ ) ) )
            // InternalXtext.g:1049:2: (this_UnorderedGroup_0= ruleUnorderedGroup | ( () otherlv_2= '<' ( (lv_guardCondition_3_0= ruleDisjunction ) ) otherlv_4= '>' ( (lv_elements_5_0= ruleAbstractToken ) )+ ) )
            {
            // InternalXtext.g:1049:2: (this_UnorderedGroup_0= ruleUnorderedGroup | ( () otherlv_2= '<' ( (lv_guardCondition_3_0= ruleDisjunction ) ) otherlv_4= '>' ( (lv_elements_5_0= ruleAbstractToken ) )+ ) )
            int alt28=2;
            int LA28_0 = input.LA(1);

            if ( ((LA28_0>=RULE_STRING && LA28_0<=RULE_ID)||LA28_0==15||LA28_0==34||(LA28_0>=39 && LA28_0<=40)||(LA28_0>=42 && LA28_0<=43)) ) {
                alt28=1;
            }
            else if ( (LA28_0==27) ) {
                alt28=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 28, 0, input);

                throw nvae;
            }
            switch (alt28) {
                case 1 :
                    // InternalXtext.g:1050:3: this_UnorderedGroup_0= ruleUnorderedGroup
                    {

                    			newCompositeNode(grammarAccess.getConditionalBranchAccess().getUnorderedGroupParserRuleCall_0());
                    		
                    pushFollow(FollowSets000.FOLLOW_2);
                    this_UnorderedGroup_0=ruleUnorderedGroup();

                    state._fsp--;


                    			current = this_UnorderedGroup_0;
                    			afterParserOrEnumRuleCall();
                    		

                    }
                    break;
                case 2 :
                    // InternalXtext.g:1059:3: ( () otherlv_2= '<' ( (lv_guardCondition_3_0= ruleDisjunction ) ) otherlv_4= '>' ( (lv_elements_5_0= ruleAbstractToken ) )+ )
                    {
                    // InternalXtext.g:1059:3: ( () otherlv_2= '<' ( (lv_guardCondition_3_0= ruleDisjunction ) ) otherlv_4= '>' ( (lv_elements_5_0= ruleAbstractToken ) )+ )
                    // InternalXtext.g:1060:4: () otherlv_2= '<' ( (lv_guardCondition_3_0= ruleDisjunction ) ) otherlv_4= '>' ( (lv_elements_5_0= ruleAbstractToken ) )+
                    {
                    // InternalXtext.g:1060:4: ()
                    // InternalXtext.g:1061:5: 
                    {

                    					current = forceCreateModelElement(
                    						grammarAccess.getConditionalBranchAccess().getGroupAction_1_0(),
                    						current);
                    				

                    }

                    otherlv_2=(Token)match(input,27,FollowSets000.FOLLOW_26); 

                    				newLeafNode(otherlv_2, grammarAccess.getConditionalBranchAccess().getLessThanSignKeyword_1_1());
                    			
                    // InternalXtext.g:1071:4: ( (lv_guardCondition_3_0= ruleDisjunction ) )
                    // InternalXtext.g:1072:5: (lv_guardCondition_3_0= ruleDisjunction )
                    {
                    // InternalXtext.g:1072:5: (lv_guardCondition_3_0= ruleDisjunction )
                    // InternalXtext.g:1073:6: lv_guardCondition_3_0= ruleDisjunction
                    {

                    						newCompositeNode(grammarAccess.getConditionalBranchAccess().getGuardConditionDisjunctionParserRuleCall_1_2_0());
                    					
                    pushFollow(FollowSets000.FOLLOW_27);
                    lv_guardCondition_3_0=ruleDisjunction();

                    state._fsp--;


                    						if (current==null) {
                    							current = createModelElementForParent(grammarAccess.getConditionalBranchRule());
                    						}
                    						set(
                    							current,
                    							"guardCondition",
                    							lv_guardCondition_3_0,
                    							"org.eclipse.xtext.Xtext.Disjunction");
                    						afterParserOrEnumRuleCall();
                    					

                    }


                    }

                    otherlv_4=(Token)match(input,28,FollowSets000.FOLLOW_28); 

                    				newLeafNode(otherlv_4, grammarAccess.getConditionalBranchAccess().getGreaterThanSignKeyword_1_3());
                    			
                    // InternalXtext.g:1094:4: ( (lv_elements_5_0= ruleAbstractToken ) )+
                    int cnt27=0;
                    loop27:
                    do {
                        int alt27=2;
                        int LA27_0 = input.LA(1);

                        if ( ((LA27_0>=RULE_STRING && LA27_0<=RULE_ID)||LA27_0==15||LA27_0==34||(LA27_0>=39 && LA27_0<=40)||(LA27_0>=42 && LA27_0<=43)) ) {
                            alt27=1;
                        }


                        switch (alt27) {
                    	case 1 :
                    	    // InternalXtext.g:1095:5: (lv_elements_5_0= ruleAbstractToken )
                    	    {
                    	    // InternalXtext.g:1095:5: (lv_elements_5_0= ruleAbstractToken )
                    	    // InternalXtext.g:1096:6: lv_elements_5_0= ruleAbstractToken
                    	    {

                    	    						newCompositeNode(grammarAccess.getConditionalBranchAccess().getElementsAbstractTokenParserRuleCall_1_4_0());
                    	    					
                    	    pushFollow(FollowSets000.FOLLOW_29);
                    	    lv_elements_5_0=ruleAbstractToken();

                    	    state._fsp--;


                    	    						if (current==null) {
                    	    							current = createModelElementForParent(grammarAccess.getConditionalBranchRule());
                    	    						}
                    	    						add(
                    	    							current,
                    	    							"elements",
                    	    							lv_elements_5_0,
                    	    							"org.eclipse.xtext.Xtext.AbstractToken");
                    	    						afterParserOrEnumRuleCall();
                    	    					

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt27 >= 1 ) break loop27;
                                EarlyExitException eee =
                                    new EarlyExitException(27, input);
                                throw eee;
                        }
                        cnt27++;
                    } while (true);


                    }


                    }
                    break;

            }


            }


            	leaveRule();

        }

            catch (RecognitionException re) {
                recover(input,re);
                appendSkippedTokens();
            }
        finally {
        }
        return current;
    }
203925
public final void ruleXOtherOperatorExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXbase.g:371:2: ( ( ( rule__XOtherOperatorExpression__Group__0 ) ) )
            // InternalXbase.g:372:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
            {
            // InternalXbase.g:372:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
            // InternalXbase.g:373:3: ( rule__XOtherOperatorExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); 
            }
            // InternalXbase.g:374:3: ( rule__XOtherOperatorExpression__Group__0 )
            // InternalXbase.g:374: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 ;
    }
1044661
public final void ruleXFunctionTypeRef() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXbase.g:1654:2: ( ( ( rule__XFunctionTypeRef__Group__0 ) ) )
            // InternalXbase.g:1655:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
            {
            // InternalXbase.g:1655:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
            // InternalXbase.g:1656:3: ( rule__XFunctionTypeRef__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getGroup()); 
            }
            // InternalXbase.g:1657:3: ( rule__XFunctionTypeRef__Group__0 )
            // InternalXbase.g:1657: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 ;
    }
1003600
public final void entryRuleLiteralCondition() throws RecognitionException {
        try {
            // InternalXtext.g:596:1: ( ruleLiteralCondition EOF )
            // InternalXtext.g:597:1: ruleLiteralCondition EOF
            {
             before(grammarAccess.getLiteralConditionRule()); 
            pushFollow(FollowSets000.FOLLOW_1);
            ruleLiteralCondition();

            state._fsp--;

             after(grammarAccess.getLiteralConditionRule()); 
            match(input,EOF,FollowSets000.FOLLOW_2); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
1117336
public final void ruleGrammar() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXtext.g:66:2: ( ( ( rule__Grammar__Group__0 ) ) )
            // InternalXtext.g:67:2: ( ( rule__Grammar__Group__0 ) )
            {
            // InternalXtext.g:67:2: ( ( rule__Grammar__Group__0 ) )
            // InternalXtext.g:68:3: ( rule__Grammar__Group__0 )
            {
             before(grammarAccess.getGrammarAccess().getGroup()); 
            // InternalXtext.g:69:3: ( rule__Grammar__Group__0 )
            // InternalXtext.g:69:4: rule__Grammar__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__Grammar__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getGrammarAccess().getGroup()); 

            }


            }

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

            	restoreStackSize(stackSize);

        }
        return ;
    }
1293053
public final void ruleXAdditiveExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXbase.g:421:2: ( ( ( rule__XAdditiveExpression__Group__0 ) ) )
            // InternalXbase.g:422:2: ( ( rule__XAdditiveExpression__Group__0 ) )
            {
            // InternalXbase.g:422:2: ( ( rule__XAdditiveExpression__Group__0 ) )
            // InternalXbase.g:423:3: ( rule__XAdditiveExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionAccess().getGroup()); 
            }
            // InternalXbase.g:424:3: ( rule__XAdditiveExpression__Group__0 )
            // InternalXbase.g:424: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 ;
    }
894035
public final void ruleXSynchronizedExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXbase.g:1496:2: ( ( ( rule__XSynchronizedExpression__Group__0 ) ) )
            // InternalXbase.g:1497:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
            {
            // InternalXbase.g:1497:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
            // InternalXbase.g:1498:3: ( rule__XSynchronizedExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); 
            }
            // InternalXbase.g:1499:3: ( rule__XSynchronizedExpression__Group__0 )
            // InternalXbase.g:1499: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 ;
    }
936585
public final void ruleParenthesizedTerminalElement() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXtext.g:1233:2: ( ( ( rule__ParenthesizedTerminalElement__Group__0 ) ) )
            // InternalXtext.g:1234:2: ( ( rule__ParenthesizedTerminalElement__Group__0 ) )
            {
            // InternalXtext.g:1234:2: ( ( rule__ParenthesizedTerminalElement__Group__0 ) )
            // InternalXtext.g:1235:3: ( rule__ParenthesizedTerminalElement__Group__0 )
            {
             before(grammarAccess.getParenthesizedTerminalElementAccess().getGroup()); 
            // InternalXtext.g:1236:3: ( rule__ParenthesizedTerminalElement__Group__0 )
            // InternalXtext.g:1236:4: rule__ParenthesizedTerminalElement__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__ParenthesizedTerminalElement__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getParenthesizedTerminalElementAccess().getGroup()); 

            }


            }

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

            	restoreStackSize(stackSize);

        }
        return ;
    }
78929
public final void entryRuleTerminalGroup() throws RecognitionException {
        try {
            // InternalXtext.g:1146:1: ( ruleTerminalGroup EOF )
            // InternalXtext.g:1147:1: ruleTerminalGroup EOF
            {
             before(grammarAccess.getTerminalGroupRule()); 
            pushFollow(FollowSets000.FOLLOW_1);
            ruleTerminalGroup();

            state._fsp--;

             after(grammarAccess.getTerminalGroupRule()); 
            match(input,EOF,FollowSets000.FOLLOW_2); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
99737
public final void ruleXReturnExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXbase.g:1446:2: ( ( ( rule__XReturnExpression__Group__0 ) ) )
            // InternalXbase.g:1447:2: ( ( rule__XReturnExpression__Group__0 ) )
            {
            // InternalXbase.g:1447:2: ( ( rule__XReturnExpression__Group__0 ) )
            // InternalXbase.g:1448:3: ( rule__XReturnExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReturnExpressionAccess().getGroup()); 
            }
            // InternalXbase.g:1449:3: ( rule__XReturnExpression__Group__0 )
            // InternalXbase.g:1449: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 ;
    }
242245
public final void ruleXEqualityExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXbase.g:271:2: ( ( ( rule__XEqualityExpression__Group__0 ) ) )
            // InternalXbase.g:272:2: ( ( rule__XEqualityExpression__Group__0 ) )
            {
            // InternalXbase.g:272:2: ( ( rule__XEqualityExpression__Group__0 ) )
            // InternalXbase.g:273:3: ( rule__XEqualityExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionAccess().getGroup()); 
            }
            // InternalXbase.g:274:3: ( rule__XEqualityExpression__Group__0 )
            // InternalXbase.g:274: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 ;
    }
146915
public final void ruleXThrowExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXbase.g:1421:2: ( ( ( rule__XThrowExpression__Group__0 ) ) )
            // InternalXbase.g:1422:2: ( ( rule__XThrowExpression__Group__0 ) )
            {
            // InternalXbase.g:1422:2: ( ( rule__XThrowExpression__Group__0 ) )
            // InternalXbase.g:1423:3: ( rule__XThrowExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXThrowExpressionAccess().getGroup()); 
            }
            // InternalXbase.g:1424:3: ( rule__XThrowExpression__Group__0 )
            // InternalXbase.g:1424: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 ;
    }
337323
public final void ruleEnumLiterals() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXtext.g:1433:2: ( ( ( rule__EnumLiterals__Group__0 ) ) )
            // InternalXtext.g:1434:2: ( ( rule__EnumLiterals__Group__0 ) )
            {
            // InternalXtext.g:1434:2: ( ( rule__EnumLiterals__Group__0 ) )
            // InternalXtext.g:1435:3: ( rule__EnumLiterals__Group__0 )
            {
             before(grammarAccess.getEnumLiteralsAccess().getGroup()); 
            // InternalXtext.g:1436:3: ( rule__EnumLiterals__Group__0 )
            // InternalXtext.g:1436:4: rule__EnumLiterals__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__EnumLiterals__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getEnumLiteralsAccess().getGroup()); 

            }


            }

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

            	restoreStackSize(stackSize);

        }
        return ;
    }
1072863
public final void ruleXTypeLiteral() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXbase.g:1396:2: ( ( ( rule__XTypeLiteral__Group__0 ) ) )
            // InternalXbase.g:1397:2: ( ( rule__XTypeLiteral__Group__0 ) )
            {
            // InternalXbase.g:1397:2: ( ( rule__XTypeLiteral__Group__0 ) )
            // InternalXbase.g:1398:3: ( rule__XTypeLiteral__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeLiteralAccess().getGroup()); 
            }
            // InternalXbase.g:1399:3: ( rule__XTypeLiteral__Group__0 )
            // InternalXbase.g:1399: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 ;
    }
199860
public final void ruleLiteralCondition() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXtext.g:608:2: ( ( ( rule__LiteralCondition__Group__0 ) ) )
            // InternalXtext.g:609:2: ( ( rule__LiteralCondition__Group__0 ) )
            {
            // InternalXtext.g:609:2: ( ( rule__LiteralCondition__Group__0 ) )
            // InternalXtext.g:610:3: ( rule__LiteralCondition__Group__0 )
            {
             before(grammarAccess.getLiteralConditionAccess().getGroup()); 
            // InternalXtext.g:611:3: ( rule__LiteralCondition__Group__0 )
            // InternalXtext.g:611:4: rule__LiteralCondition__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__LiteralCondition__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getLiteralConditionAccess().getGroup()); 

            }


            }

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

            	restoreStackSize(stackSize);

        }
        return ;
    }