docs: public final void mRULE_WS() throws RecognitionException {
          try {
              int _type = RULE_WS;
              int _channel = DEFAULT_TOKEN_CHANNEL;
              // InternalSARL.g:16936:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
              // InternalSARL.g:16936:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
              {
              // InternalSARL.g:16936:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
              int cnt53=0;
              loop53:
              do {
                  int alt53=2;
                  int LA53_0 = input.LA(1);
  
                  if ( ((LA53_0>='\t' && LA53_0<='\n')||LA53_0=='\r'||LA53_0==' ') ) {
                      alt53=1;
                  }
  
  
                  switch (alt53) {
              	case 1 :
              	    // InternalSARL.g:
              	    {
              	    if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
              	        input.consume();
  
              	    }
              	    else {
              	        MismatchedSetException mse = new MismatchedSetException(null,input);
              	        recover(mse);
              	        throw mse;}
  
  
              	    }
              	    break;
  
              	default :
              	    if ( cnt53 >= 1 ) break loop53;
                          EarlyExitException eee =
                              new EarlyExitException(53, input);
                          throw eee;
                  }
                  cnt53++;
              } while (true);
  
  
              }
  
              state.type = _type;
              state.channel = _channel;
          }
          finally {
          }
      }