public final void mRULE_SL_COMMENT() throws RecognitionException {
        try {
            int _type = RULE_SL_COMMENT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // InternalXtext.g:9911:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
            // InternalXtext.g:9911:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
            {
            match("//"); 

            // InternalXtext.g:9911:24: (~ ( ( '\\n' | '\\r' ) ) )*
            loop8:
            do {
                int alt8=2;
                int LA8_0 = input.LA(1);

                if ( ((LA8_0>='\u0000' && LA8_0<='\t')||(LA8_0>='\u000B' && LA8_0<='\f')||(LA8_0>='\u000E' && LA8_0<='\uFFFF')) ) {
                    alt8=1;
                }


                switch (alt8) {
            	case 1 :
            	    // InternalXtext.g:9911:24: ~ ( ( '\\n' | '\\r' ) )
            	    {
            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}


            	    }
            	    break;

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

            // InternalXtext.g:9911:40: ( ( '\\r' )? '\\n' )?
            int alt10=2;
            int LA10_0 = input.LA(1);

            if ( (LA10_0=='\n'||LA10_0=='\r') ) {
                alt10=1;
            }
            switch (alt10) {
                case 1 :
                    // InternalXtext.g:9911:41: ( '\\r' )? '\\n'
                    {
                    // InternalXtext.g:9911:41: ( '\\r' )?
                    int alt9=2;
                    int LA9_0 = input.LA(1);

                    if ( (LA9_0=='\r') ) {
                        alt9=1;
                    }
                    switch (alt9) {
                        case 1 :
                            // InternalXtext.g:9911:41: '\\r'
                            {
                            match('\r'); 

                            }
                            break;

                    }

                    match('\n'); 

                    }
                    break;

            }


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
public final void mRULE_SL_COMMENT ( ) throws RecognitionException { try { int _type = RULE_SL_COMMENT ; int _channel = DEFAULT_TOKEN_CHANNEL ; { match ( "//" ) ; loop8 : do { int alt8 = 2 ; int LA8_0 = input . LA ( 1 ) ; if ( ( ( LA8_0 >= '' && LA8_0 <= '\t' ) || ( LA8_0 >= '' && LA8_0 <= '\f' ) || ( LA8_0 >= '' && LA8_0 <= '' ) ) ) { alt8 = 1 ; } switch ( alt8 ) { case 1 : { if ( ( input . LA ( 1 ) >= '' && input . LA ( 1 ) <= '\t' ) || ( input . LA ( 1 ) >= '' && input . LA ( 1 ) <= '\f' ) || ( input . LA ( 1 ) >= '' && input . LA ( 1 ) <= '' ) ) { input . consume ( ) ; } else { MismatchedSetException mse = new MismatchedSetException ( null , input ) ; recover ( mse ) ; throw mse ; } } break ; default : break loop8 ; } } while ( true ) ; int alt10 = 2 ; int LA10_0 = input . LA ( 1 ) ; if ( ( LA10_0 == '\n' || LA10_0 == '\r' ) ) { alt10 = 1 ; } switch ( alt10 ) { case 1 : { int alt9 = 2 ; int LA9_0 = input . LA ( 1 ) ; if ( ( LA9_0 == '\r' ) ) { alt9 = 1 ; } switch ( alt9 ) { case 1 : { match ( '\r' ) ; } break ; } match ( '\n' ) ; } break ; } } state . type = _type ; state . channel = _channel ; } finally { } }
$ANTLR start "RULE_SL_COMMENT"