InternalXbaseWithAnnotations.g:92:1: ruleXAnnotationElementValuePair : ( ( rule__XAnnotationElementValuePair__Group__0 ) ) ;
543213
public final void ruleXAnnotationElementValuePair() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXbaseWithAnnotations.g:96:2: ( ( ( rule__XAnnotationElementValuePair__Group__0 ) ) )
            // InternalXbaseWithAnnotations.g:97:2: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
            {
            // InternalXbaseWithAnnotations.g:97:2: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
            // InternalXbaseWithAnnotations.g:98:3: ( rule__XAnnotationElementValuePair__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup()); 
            }
            // InternalXbaseWithAnnotations.g:99:3: ( rule__XAnnotationElementValuePair__Group__0 )
            // InternalXbaseWithAnnotations.g:99:4: rule__XAnnotationElementValuePair__Group__0
            {
            pushFollow(FOLLOW_2);
            rule__XAnnotationElementValuePair__Group__0();

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

            }

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

            }


            }

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

            	restoreStackSize(stackSize);

        }
        return ;
    }
108980
public final void synpred26_InternalXbase_fragment() throws RecognitionException {   
        // InternalXbase.g:2983:6: ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )
        // InternalXbase.g:2983:7: ( '(' ( ( ruleJvmFormalParameter ) ) ':' )
        {
        // InternalXbase.g:2983:7: ( '(' ( ( ruleJvmFormalParameter ) ) ':' )
        // InternalXbase.g:2984:7: '(' ( ( ruleJvmFormalParameter ) ) ':'
        {
        match(input,49,FOLLOW_13); if (state.failed) return ;
        // InternalXbase.g:2985:7: ( ( ruleJvmFormalParameter ) )
        // InternalXbase.g:2986:8: ( ruleJvmFormalParameter )
        {
        // InternalXbase.g:2986:8: ( ruleJvmFormalParameter )
        // InternalXbase.g:2987:9: ruleJvmFormalParameter
        {
        pushFollow(FOLLOW_47);
        ruleJvmFormalParameter();

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

        }


        }

        match(input,61,FOLLOW_2); if (state.failed) return ;

        }


        }
    }
804866
public final void ruleXAnnotationElementValueOrCommaList() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXbaseWithAnnotations.g:121:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) )
            // InternalXbaseWithAnnotations.g:122:2: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
            {
            // InternalXbaseWithAnnotations.g:122:2: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
            // InternalXbaseWithAnnotations.g:123:3: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getAlternatives()); 
            }
            // InternalXbaseWithAnnotations.g:124:3: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
            // InternalXbaseWithAnnotations.g:124:4: rule__XAnnotationElementValueOrCommaList__Alternatives
            {
            pushFollow(FOLLOW_2);
            rule__XAnnotationElementValueOrCommaList__Alternatives();

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

            }

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

            }


            }

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

            	restoreStackSize(stackSize);

        }
        return ;
    }
759614
public final void entryRuleXAnnotationElementValue() throws RecognitionException {
        try {
            // InternalXbaseWithAnnotations.g:134:1: ( ruleXAnnotationElementValue EOF )
            // InternalXbaseWithAnnotations.g:135:1: ruleXAnnotationElementValue EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationElementValueRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXAnnotationElementValue();

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

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
1277960
public final void synpred3_InternalXbaseWithAnnotations_fragment() throws RecognitionException {   
        // InternalXbaseWithAnnotations.g:2098:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) )
        // InternalXbaseWithAnnotations.g:2098:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
        {
        // InternalXbaseWithAnnotations.g:2098:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
        // InternalXbaseWithAnnotations.g:2099:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
        }
        // InternalXbaseWithAnnotations.g:2100:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
        // InternalXbaseWithAnnotations.g:2100:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
        {
        pushFollow(FOLLOW_2);
        rule__XAnnotationElementValueOrCommaList__Group_0__0();

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

        }


        }


        }
    }
539628
public final void ruleXExpressionInClosure() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXbase.g:821:2: ( ( ( rule__XExpressionInClosure__Group__0 ) ) )
            // InternalXbase.g:822:2: ( ( rule__XExpressionInClosure__Group__0 ) )
            {
            // InternalXbase.g:822:2: ( ( rule__XExpressionInClosure__Group__0 ) )
            // InternalXbase.g:823:3: ( rule__XExpressionInClosure__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXExpressionInClosureAccess().getGroup()); 
            }
            // InternalXbase.g:824:3: ( rule__XExpressionInClosure__Group__0 )
            // InternalXbase.g:824: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 ;
    }
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 ;
    }
1285193
public final void synpred29_InternalXbaseWithAnnotations_fragment() throws RecognitionException {   
        // InternalXbaseWithAnnotations.g:3015:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
        // InternalXbaseWithAnnotations.g:3015:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
        {
        // InternalXbaseWithAnnotations.g:3015:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
        // InternalXbaseWithAnnotations.g:3016:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
        {
        // InternalXbaseWithAnnotations.g:3016:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
        int alt128=2;
        int LA128_0 = input.LA(1);

        if ( (LA128_0==RULE_ID||LA128_0==14||LA128_0==39) ) {
            alt128=1;
        }
        switch (alt128) {
            case 1 :
                // InternalXbaseWithAnnotations.g:3017:6: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                {
                // InternalXbaseWithAnnotations.g:3017:6: ( ( ruleJvmFormalParameter ) )
                // InternalXbaseWithAnnotations.g:3018:7: ( ruleJvmFormalParameter )
                {
                // InternalXbaseWithAnnotations.g:3018:7: ( ruleJvmFormalParameter )
                // InternalXbaseWithAnnotations.g:3019:8: ruleJvmFormalParameter
                {
                pushFollow(FOLLOW_43);
                ruleJvmFormalParameter();

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

                }


                }

                // InternalXbaseWithAnnotations.g:3022:6: ( ',' ( ( ruleJvmFormalParameter ) ) )*
                loop127:
                do {
                    int alt127=2;
                    int LA127_0 = input.LA(1);

                    if ( (LA127_0==15) ) {
                        alt127=1;
                    }


                    switch (alt127) {
                	case 1 :
                	    // InternalXbaseWithAnnotations.g:3023:7: ',' ( ( ruleJvmFormalParameter ) )
                	    {
                	    match(input,15,FOLLOW_22); if (state.failed) return ;
                	    // InternalXbaseWithAnnotations.g:3024:7: ( ( ruleJvmFormalParameter ) )
                	    // InternalXbaseWithAnnotations.g:3025:8: ( ruleJvmFormalParameter )
                	    {
                	    // InternalXbaseWithAnnotations.g:3025:8: ( ruleJvmFormalParameter )
                	    // InternalXbaseWithAnnotations.g:3026:9: ruleJvmFormalParameter
                	    {
                	    pushFollow(FOLLOW_43);
                	    ruleJvmFormalParameter();

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

                	    }


                	    }


                	    }
                	    break;

                	default :
                	    break loop127;
                    }
                } while (true);


                }
                break;

        }

        // InternalXbaseWithAnnotations.g:3031:5: ( ( '|' ) )
        // InternalXbaseWithAnnotations.g:3032:6: ( '|' )
        {
        // InternalXbaseWithAnnotations.g:3032:6: ( '|' )
        // InternalXbaseWithAnnotations.g:3033:7: '|'
        {
        match(input,57,FOLLOW_2); if (state.failed) return ;

        }


        }


        }


        }
    }
838693
public final void entryRuleXAnnotationElementValueOrCommaList() throws RecognitionException {
        try {
            // InternalXbaseWithAnnotations.g:109:1: ( ruleXAnnotationElementValueOrCommaList EOF )
            // InternalXbaseWithAnnotations.g:110:1: ruleXAnnotationElementValueOrCommaList EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationElementValueOrCommaListRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXAnnotationElementValueOrCommaList();

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

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
253972
public final EObject entryRuleXAnnotationElementValue() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleXAnnotationElementValue = null;


        try {
            // InternalXbaseWithAnnotations.g:426:64: (iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF )
            // InternalXbaseWithAnnotations.g:427:2: iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF
            {
            if ( state.backtracking==0 ) {
               newCompositeNode(grammarAccess.getXAnnotationElementValueRule()); 
            }
            pushFollow(FOLLOW_1);
            iv_ruleXAnnotationElementValue=ruleXAnnotationElementValue();

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

            }

        }

            catch (RecognitionException re) {
                recover(input,re);
                appendSkippedTokens();
            }
        finally {
        }
        return current;
    }
562336
public final EObject ruleXSetLiteral() throws RecognitionException {
        EObject current = null;

        Token otherlv_1=null;
        Token otherlv_2=null;
        Token otherlv_4=null;
        Token otherlv_6=null;
        EObject lv_elements_3_0 = null;

        EObject lv_elements_5_0 = null;



        	enterRule();

        try {
            // InternalXbaseWithAnnotations.g:2823:2: ( ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' ) )
            // InternalXbaseWithAnnotations.g:2824:2: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
            {
            // InternalXbaseWithAnnotations.g:2824:2: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
            // InternalXbaseWithAnnotations.g:2825:3: () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}'
            {
            // InternalXbaseWithAnnotations.g:2825:3: ()
            // InternalXbaseWithAnnotations.g:2826:4: 
            {
            if ( state.backtracking==0 ) {

              				current = forceCreateModelElement(
              					grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0(),
              					current);
              			
            }

            }

            otherlv_1=(Token)match(input,18,FOLLOW_39); if (state.failed) return current;
            if ( state.backtracking==0 ) {

              			newLeafNode(otherlv_1, grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1());
              		
            }
            otherlv_2=(Token)match(input,55,FOLLOW_40); if (state.failed) return current;
            if ( state.backtracking==0 ) {

              			newLeafNode(otherlv_2, grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2());
              		
            }
            // InternalXbaseWithAnnotations.g:2840:3: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
            int alt49=2;
            int LA49_0 = input.LA(1);

            if ( ((LA49_0>=RULE_STRING && LA49_0<=RULE_ID)||LA49_0==14||(LA49_0>=18 && LA49_0<=19)||LA49_0==26||(LA49_0>=42 && LA49_0<=43)||LA49_0==48||LA49_0==55||LA49_0==59||LA49_0==61||(LA49_0>=65 && LA49_0<=67)||(LA49_0>=70 && LA49_0<=82)||LA49_0==84) ) {
                alt49=1;
            }
            switch (alt49) {
                case 1 :
                    // InternalXbaseWithAnnotations.g:2841:4: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
                    {
                    // InternalXbaseWithAnnotations.g:2841:4: ( (lv_elements_3_0= ruleXExpression ) )
                    // InternalXbaseWithAnnotations.g:2842:5: (lv_elements_3_0= ruleXExpression )
                    {
                    // InternalXbaseWithAnnotations.g:2842:5: (lv_elements_3_0= ruleXExpression )
                    // InternalXbaseWithAnnotations.g:2843:6: lv_elements_3_0= ruleXExpression
                    {
                    if ( state.backtracking==0 ) {

                      						newCompositeNode(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0());
                      					
                    }
                    pushFollow(FOLLOW_41);
                    lv_elements_3_0=ruleXExpression();

                    state._fsp--;
                    if (state.failed) return current;
                    if ( state.backtracking==0 ) {

                      						if (current==null) {
                      							current = createModelElementForParent(grammarAccess.getXSetLiteralRule());
                      						}
                      						add(
                      							current,
                      							"elements",
                      							lv_elements_3_0,
                      							"org.eclipse.xtext.xbase.Xbase.XExpression");
                      						afterParserOrEnumRuleCall();
                      					
                    }

                    }


                    }

                    // InternalXbaseWithAnnotations.g:2860:4: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
                    loop48:
                    do {
                        int alt48=2;
                        int LA48_0 = input.LA(1);

                        if ( (LA48_0==15) ) {
                            alt48=1;
                        }


                        switch (alt48) {
                    	case 1 :
                    	    // InternalXbaseWithAnnotations.g:2861:5: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
                    	    {
                    	    otherlv_4=(Token)match(input,15,FOLLOW_9); if (state.failed) return current;
                    	    if ( state.backtracking==0 ) {

                    	      					newLeafNode(otherlv_4, grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0());
                    	      				
                    	    }
                    	    // InternalXbaseWithAnnotations.g:2865:5: ( (lv_elements_5_0= ruleXExpression ) )
                    	    // InternalXbaseWithAnnotations.g:2866:6: (lv_elements_5_0= ruleXExpression )
                    	    {
                    	    // InternalXbaseWithAnnotations.g:2866:6: (lv_elements_5_0= ruleXExpression )
                    	    // InternalXbaseWithAnnotations.g:2867:7: lv_elements_5_0= ruleXExpression
                    	    {
                    	    if ( state.backtracking==0 ) {

                    	      							newCompositeNode(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0());
                    	      						
                    	    }
                    	    pushFollow(FOLLOW_41);
                    	    lv_elements_5_0=ruleXExpression();

                    	    state._fsp--;
                    	    if (state.failed) return current;
                    	    if ( state.backtracking==0 ) {

                    	      							if (current==null) {
                    	      								current = createModelElementForParent(grammarAccess.getXSetLiteralRule());
                    	      							}
                    	      							add(
                    	      								current,
                    	      								"elements",
                    	      								lv_elements_5_0,
                    	      								"org.eclipse.xtext.xbase.Xbase.XExpression");
                    	      							afterParserOrEnumRuleCall();
                    	      						
                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop48;
                        }
                    } while (true);


                    }
                    break;

            }

            otherlv_6=(Token)match(input,56,FOLLOW_2); if (state.failed) return current;
            if ( state.backtracking==0 ) {

              			newLeafNode(otherlv_6, grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4());
              		
            }

            }


            }

            if ( state.backtracking==0 ) {

              	leaveRule();

            }
        }

            catch (RecognitionException re) {
                recover(input,re);
                appendSkippedTokens();
            }
        finally {
        }
        return current;
    }
309404
public final EObject ruleXExpressionInClosure() throws RecognitionException {
        EObject current = null;

        Token otherlv_2=null;
        EObject lv_expressions_1_0 = null;



        	enterRule();

        try {
            // InternalXbaseWithAnnotations.g:3141:2: ( ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* ) )
            // InternalXbaseWithAnnotations.g:3142:2: ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* )
            {
            // InternalXbaseWithAnnotations.g:3142:2: ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* )
            // InternalXbaseWithAnnotations.g:3143:3: () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )*
            {
            // InternalXbaseWithAnnotations.g:3143:3: ()
            // InternalXbaseWithAnnotations.g:3144:4: 
            {
            if ( state.backtracking==0 ) {

              				current = forceCreateModelElement(
              					grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0(),
              					current);
              			
            }

            }

            // InternalXbaseWithAnnotations.g:3150:3: ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )*
            loop56:
            do {
                int alt56=2;
                int LA56_0 = input.LA(1);

                if ( ((LA56_0>=RULE_STRING && LA56_0<=RULE_ID)||LA56_0==14||(LA56_0>=18 && LA56_0<=19)||LA56_0==26||(LA56_0>=42 && LA56_0<=43)||LA56_0==48||LA56_0==55||LA56_0==59||LA56_0==61||(LA56_0>=65 && LA56_0<=82)||LA56_0==84) ) {
                    alt56=1;
                }


                switch (alt56) {
            	case 1 :
            	    // InternalXbaseWithAnnotations.g:3151:4: ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )?
            	    {
            	    // InternalXbaseWithAnnotations.g:3151:4: ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) )
            	    // InternalXbaseWithAnnotations.g:3152:5: (lv_expressions_1_0= ruleXExpressionOrVarDeclaration )
            	    {
            	    // InternalXbaseWithAnnotations.g:3152:5: (lv_expressions_1_0= ruleXExpressionOrVarDeclaration )
            	    // InternalXbaseWithAnnotations.g:3153:6: lv_expressions_1_0= ruleXExpressionOrVarDeclaration
            	    {
            	    if ( state.backtracking==0 ) {

            	      						newCompositeNode(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_1_0_0());
            	      					
            	    }
            	    pushFollow(FOLLOW_46);
            	    lv_expressions_1_0=ruleXExpressionOrVarDeclaration();

            	    state._fsp--;
            	    if (state.failed) return current;
            	    if ( state.backtracking==0 ) {

            	      						if (current==null) {
            	      							current = createModelElementForParent(grammarAccess.getXExpressionInClosureRule());
            	      						}
            	      						add(
            	      							current,
            	      							"expressions",
            	      							lv_expressions_1_0,
            	      							"org.eclipse.xtext.xbase.Xbase.XExpressionOrVarDeclaration");
            	      						afterParserOrEnumRuleCall();
            	      					
            	    }

            	    }


            	    }

            	    // InternalXbaseWithAnnotations.g:3170:4: (otherlv_2= ';' )?
            	    int alt55=2;
            	    int LA55_0 = input.LA(1);

            	    if ( (LA55_0==58) ) {
            	        alt55=1;
            	    }
            	    switch (alt55) {
            	        case 1 :
            	            // InternalXbaseWithAnnotations.g:3171:5: otherlv_2= ';'
            	            {
            	            otherlv_2=(Token)match(input,58,FOLLOW_47); if (state.failed) return current;
            	            if ( state.backtracking==0 ) {

            	              					newLeafNode(otherlv_2, grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1());
            	              				
            	            }

            	            }
            	            break;

            	    }


            	    }
            	    break;

            	default :
            	    break loop56;
                }
            } while (true);


            }


            }

            if ( state.backtracking==0 ) {

              	leaveRule();

            }
        }

            catch (RecognitionException re) {
                recover(input,re);
                appendSkippedTokens();
            }
        finally {
        }
        return current;
    }
849512
public final void synpred33_InternalXbaseWithAnnotations_fragment() throws RecognitionException {   
        // InternalXbaseWithAnnotations.g:3550:6: ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )
        // InternalXbaseWithAnnotations.g:3550:7: ( ( ( ruleJvmFormalParameter ) ) ':' )
        {
        // InternalXbaseWithAnnotations.g:3550:7: ( ( ( ruleJvmFormalParameter ) ) ':' )
        // InternalXbaseWithAnnotations.g:3551:7: ( ( ruleJvmFormalParameter ) ) ':'
        {
        // InternalXbaseWithAnnotations.g:3551:7: ( ( ruleJvmFormalParameter ) )
        // InternalXbaseWithAnnotations.g:3552:8: ( ruleJvmFormalParameter )
        {
        // InternalXbaseWithAnnotations.g:3552:8: ( ruleJvmFormalParameter )
        // InternalXbaseWithAnnotations.g:3553:9: ruleJvmFormalParameter
        {
        pushFollow(FOLLOW_51);
        ruleJvmFormalParameter();

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

        }


        }

        match(input,62,FOLLOW_2); if (state.failed) return ;

        }


        }
    }
943714
public final void entryRuleXAnnotationElementValuePair() throws RecognitionException {
        try {
            // InternalXbaseWithAnnotations.g:84:1: ( ruleXAnnotationElementValuePair EOF )
            // InternalXbaseWithAnnotations.g:85:1: ruleXAnnotationElementValuePair EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationElementValuePairRule()); 
            }
            pushFollow(FOLLOW_1);
            ruleXAnnotationElementValuePair();

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

            }

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

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXbase.g:1346:2: ( ( ( rule__XNumberLiteral__Group__0 ) ) )
            // InternalXbase.g:1347:2: ( ( rule__XNumberLiteral__Group__0 ) )
            {
            // InternalXbase.g:1347:2: ( ( rule__XNumberLiteral__Group__0 ) )
            // InternalXbase.g:1348:3: ( rule__XNumberLiteral__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXNumberLiteralAccess().getGroup()); 
            }
            // InternalXbase.g:1349:3: ( rule__XNumberLiteral__Group__0 )
            // InternalXbase.g:1349: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 ;
    }
652514
public final void synpred35_InternalXbaseWithAnnotations_fragment() throws RecognitionException {   
        // InternalXbaseWithAnnotations.g:4368:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )
        // InternalXbaseWithAnnotations.g:4368:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
        {
        // InternalXbaseWithAnnotations.g:4368:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
        // InternalXbaseWithAnnotations.g:4369:6: ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) )
        {
        // InternalXbaseWithAnnotations.g:4369:6: ( ( ruleJvmTypeReference ) )
        // InternalXbaseWithAnnotations.g:4370:7: ( ruleJvmTypeReference )
        {
        // InternalXbaseWithAnnotations.g:4370:7: ( ruleJvmTypeReference )
        // InternalXbaseWithAnnotations.g:4371:8: ruleJvmTypeReference
        {
        pushFollow(FOLLOW_3);
        ruleJvmTypeReference();

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

        }


        }

        // InternalXbaseWithAnnotations.g:4374:6: ( ( ruleValidID ) )
        // InternalXbaseWithAnnotations.g:4375:7: ( ruleValidID )
        {
        // InternalXbaseWithAnnotations.g:4375:7: ( ruleValidID )
        // InternalXbaseWithAnnotations.g:4376:8: ruleValidID
        {
        pushFollow(FOLLOW_2);
        ruleValidID();

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

        }


        }


        }


        }
    }
550926
public final void ruleXRelationalExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXbase.g:321:2: ( ( ( rule__XRelationalExpression__Group__0 ) ) )
            // InternalXbase.g:322:2: ( ( rule__XRelationalExpression__Group__0 ) )
            {
            // InternalXbase.g:322:2: ( ( rule__XRelationalExpression__Group__0 ) )
            // InternalXbase.g:323:3: ( rule__XRelationalExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getGroup()); 
            }
            // InternalXbase.g:324:3: ( rule__XRelationalExpression__Group__0 )
            // InternalXbase.g:324: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 ;
    }