public final void rule__IdOrSuper__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
        	
        try {
            // InternalXbaseWithAnnotations.g:2979:1: ( ( ruleFeatureCallID ) | ( 'super' ) )
            int alt33=2;
            int LA33_0 = input.LA(1);

            if ( (LA33_0==RULE_ID||(LA33_0>=45 && LA33_0<=48)) ) {
                alt33=1;
            }
            else if ( (LA33_0==49) ) {
                alt33=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 33, 0, input);

                throw nvae;
            }
            switch (alt33) {
                case 1 :
                    // InternalXbaseWithAnnotations.g:2980:2: ( ruleFeatureCallID )
                    {
                    // InternalXbaseWithAnnotations.g:2980:2: ( ruleFeatureCallID )
                    // InternalXbaseWithAnnotations.g:2981: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 :
                    // InternalXbaseWithAnnotations.g:2986:2: ( 'super' )
                    {
                    // InternalXbaseWithAnnotations.g:2986:2: ( 'super' )
                    // InternalXbaseWithAnnotations.g:2987:3: 'super'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); 
                    }
                    match(input,49,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 ;
    }
public final void rule__IdOrSuper__Alternatives ( ) throws RecognitionException { int stackSize = keepStackSize ( ) ; try { int alt33 = 2 ; int LA33_0 = input . LA ( 1 ) ; if ( ( LA33_0 == RULE_ID || ( LA33_0 >= 45 && LA33_0 <= 48 ) ) ) { alt33 = 1 ; } else if ( ( LA33_0 == 49 ) ) { alt33 = 2 ; } else { if ( state . backtracking > 0 ) { state . failed = true ; return ; } NoViableAltException nvae = new NoViableAltException ( "" , 33 , 0 , input ) ; throw nvae ; } switch ( alt33 ) { case 1 : { { 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 : { { if ( state . backtracking == 0 ) { before ( grammarAccess . getIdOrSuperAccess ( ) . getSuperKeyword_1 ( ) ) ; } match ( input , 49 , 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 ; }
InternalXbaseWithAnnotations.g:2975:1: rule__IdOrSuper__Alternatives : ( ( ruleFeatureCallID ) | ( 'super' ) );