docs: public final void mRULE_RICH_TEXT() throws RecognitionException {
          try {
              int _type = RULE_RICH_TEXT;
              int _channel = DEFAULT_TOKEN_CHANNEL;
              // InternalSARL.g:16904:16: ( '\\'\\'\\'' ( RULE_IN_RICH_STRING )* ( '\\'\\'\\'' | ( '\\'' ( '\\'' )? )? EOF ) )
              // InternalSARL.g:16904:18: '\\'\\'\\'' ( RULE_IN_RICH_STRING )* ( '\\'\\'\\'' | ( '\\'' ( '\\'' )? )? EOF )
              {
              match("'''"); 
  
              // InternalSARL.g:16904:27: ( RULE_IN_RICH_STRING )*
              loop8:
              do {
                  int alt8=2;
                  int LA8_0 = input.LA(1);
  
                  if ( (LA8_0=='\'') ) {
                      int LA8_1 = input.LA(2);
  
                      if ( (LA8_1=='\'') ) {
                          int LA8_4 = input.LA(3);
  
                          if ( ((LA8_4>='\u0000' && LA8_4<='&')||(LA8_4>='(' && LA8_4<='\uFFFC')||(LA8_4>='\uFFFE' && LA8_4<='\uFFFF')) ) {
                              alt8=1;
                          }
  
  
                      }
                      else if ( ((LA8_1>='\u0000' && LA8_1<='&')||(LA8_1>='(' && LA8_1<='\uFFFC')||(LA8_1>='\uFFFE' && LA8_1<='\uFFFF')) ) {
                          alt8=1;
                      }
  
  
                  }
                  else if ( ((LA8_0>='\u0000' && LA8_0<='&')||(LA8_0>='(' && LA8_0<='\uFFFC')||(LA8_0>='\uFFFE' && LA8_0<='\uFFFF')) ) {
                      alt8=1;
                  }
  
  
                  switch (alt8) {
              	case 1 :
              	    // InternalSARL.g:16904:27: RULE_IN_RICH_STRING
              	    {
              	    mRULE_IN_RICH_STRING(); 
  
              	    }
              	    break;
  
              	default :
              	    break loop8;
                  }
              } while (true);
  
              // InternalSARL.g:16904:48: ( '\\'\\'\\'' | ( '\\'' ( '\\'' )? )? EOF )
              int alt11=2;
              int LA11_0 = input.LA(1);
  
              if ( (LA11_0=='\'') ) {
                  int LA11_1 = input.LA(2);
  
                  if ( (LA11_1=='\'') ) {
                      int LA11_3 = input.LA(3);
  
                      if ( (LA11_3=='\'') ) {
                          alt11=1;
                      }
                      else {
                          alt11=2;}
                  }
                  else {
                      alt11=2;}
              }
              else {
                  alt11=2;}
              switch (alt11) {
                  case 1 :
                      // InternalSARL.g:16904:49: '\\'\\'\\''
                      {
                      match("'''"); 
  
  
                      }
                      break;
                  case 2 :
                      // InternalSARL.g:16904:58: ( '\\'' ( '\\'' )? )? EOF
                      {
                      // InternalSARL.g:16904:58: ( '\\'' ( '\\'' )? )?
                      int alt10=2;
                      int LA10_0 = input.LA(1);
  
                      if ( (LA10_0=='\'') ) {
                          alt10=1;
                      }
                      switch (alt10) {
                          case 1 :
                              // InternalSARL.g:16904:59: '\\'' ( '\\'' )?
                              {
                              match('\''); 
                              // InternalSARL.g:16904:64: ( '\\'' )?
                              int alt9=2;
                              int LA9_0 = input.LA(1);
  
                              if ( (LA9_0=='\'') ) {
                                  alt9=1;
                              }
                              switch (alt9) {
                                  case 1 :
                                      // InternalSARL.g:16904:64: '\\''
                                      {
                                      match('\''); 
  
                                      }
                                      break;
  
                              }
  
  
                              }
                              break;
  
                      }
  
                      match(EOF); 
  
                      }
                      break;
  
              }
  
  
              }
  
              state.type = _type;
              state.channel = _channel;
          }
          finally {
          }
      }