docs: public final void mRULE_HEX() throws RecognitionException {
          try {
              int _type = RULE_HEX;
              int _channel = DEFAULT_TOKEN_CHANNEL;
              // InternalSARL.g:16924:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
              // InternalSARL.g:16924:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
              {
              // InternalSARL.g:16924:12: ( '0x' | '0X' )
              int alt36=2;
              int LA36_0 = input.LA(1);
  
              if ( (LA36_0=='0') ) {
                  int LA36_1 = input.LA(2);
  
                  if ( (LA36_1=='x') ) {
                      alt36=1;
                  }
                  else if ( (LA36_1=='X') ) {
                      alt36=2;
                  }
                  else {
                      NoViableAltException nvae =
                          new NoViableAltException("", 36, 1, input);
  
                      throw nvae;
                  }
              }
              else {
                  NoViableAltException nvae =
                      new NoViableAltException("", 36, 0, input);
  
                  throw nvae;
              }
              switch (alt36) {
                  case 1 :
                      // InternalSARL.g:16924:13: '0x'
                      {
                      match("0x"); 
  
  
                      }
                      break;
                  case 2 :
                      // InternalSARL.g:16924:18: '0X'
                      {
                      match("0X"); 
  
  
                      }
                      break;
  
              }
  
              // InternalSARL.g:16924:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
              int cnt37=0;
              loop37:
              do {
                  int alt37=2;
                  int LA37_0 = input.LA(1);
  
                  if ( ((LA37_0>='0' && LA37_0<='9')||(LA37_0>='A' && LA37_0<='F')||LA37_0=='_'||(LA37_0>='a' && LA37_0<='f')) ) {
                      alt37=1;
                  }
  
  
                  switch (alt37) {
              	case 1 :
              	    // InternalSARL.g:
              	    {
              	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='f') ) {
              	        input.consume();
  
              	    }
              	    else {
              	        MismatchedSetException mse = new MismatchedSetException(null,input);
              	        recover(mse);
              	        throw mse;}
  
  
              	    }
              	    break;
  
              	default :
              	    if ( cnt37 >= 1 ) break loop37;
                          EarlyExitException eee =
                              new EarlyExitException(37, input);
                          throw eee;
                  }
                  cnt37++;
              } while (true);
  
              // InternalSARL.g:16924:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
              int alt39=2;
              int LA39_0 = input.LA(1);
  
              if ( (LA39_0=='#') ) {
                  alt39=1;
              }
              switch (alt39) {
                  case 1 :
                      // InternalSARL.g:16924:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                      {
                      match('#'); 
                      // InternalSARL.g:16924:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                      int alt38=2;
                      int LA38_0 = input.LA(1);
  
                      if ( (LA38_0=='B'||LA38_0=='b') ) {
                          alt38=1;
                      }
                      else if ( (LA38_0=='L'||LA38_0=='l') ) {
                          alt38=2;
                      }
                      else {
                          NoViableAltException nvae =
                              new NoViableAltException("", 38, 0, input);
  
                          throw nvae;
                      }
                      switch (alt38) {
                          case 1 :
                              // InternalSARL.g:16924:64: ( 'b' | 'B' ) ( 'i' | 'I' )
                              {
                              if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                                  input.consume();
  
                              }
                              else {
                                  MismatchedSetException mse = new MismatchedSetException(null,input);
                                  recover(mse);
                                  throw mse;}
  
                              if ( input.LA(1)=='I'||input.LA(1)=='i' ) {
                                  input.consume();
  
                              }
                              else {
                                  MismatchedSetException mse = new MismatchedSetException(null,input);
                                  recover(mse);
                                  throw mse;}
  
  
                              }
                              break;
                          case 2 :
                              // InternalSARL.g:16924:84: ( 'l' | 'L' )
                              {
                              if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
                                  input.consume();
  
                              }
                              else {
                                  MismatchedSetException mse = new MismatchedSetException(null,input);
                                  recover(mse);
                                  throw mse;}
  
  
                              }
                              break;
  
                      }
  
  
                      }
                      break;
  
              }
  
  
              }
  
              state.type = _type;
              state.channel = _channel;
          }
          finally {
          }
      }