docs: public final void mHEX() throws RecognitionException {
          try {
              int _type = HEX;
              int _channel = DEFAULT_TOKEN_CHANNEL;
              // com/dyuproject/protostuff/parser/ProtoLexer.g:252:5: ( ( MINUS )? '0' ( 'x' | 'X' ) ( HEX_DIGIT )+ )
              // com/dyuproject/protostuff/parser/ProtoLexer.g:252:9: ( MINUS )? '0' ( 'x' | 'X' ) ( HEX_DIGIT )+
              {
              // com/dyuproject/protostuff/parser/ProtoLexer.g:252:9: ( MINUS )?
              int alt10=2;
              switch ( input.LA(1) ) {
                  case '-':
                      {
                      alt10=1;
                      }
                      break;
              }
  
              switch (alt10) {
                  case 1 :
                      // com/dyuproject/protostuff/parser/ProtoLexer.g:252:9: MINUS
                      {
                      mMINUS(); 
  
                      }
                      break;
  
              }
  
              match('0'); 
              if ( input.LA(1)=='X'||input.LA(1)=='x' ) {
                  input.consume();
  
              }
              else {
                  MismatchedSetException mse = new MismatchedSetException(null,input);
                  recover(mse);
                  throw mse;}
  
              // com/dyuproject/protostuff/parser/ProtoLexer.g:252:30: ( HEX_DIGIT )+
              int cnt11=0;
              loop11:
              do {
                  int alt11=2;
                  switch ( input.LA(1) ) {
                  case '0':
                  case '1':
                  case '2':
                  case '3':
                  case '4':
                  case '5':
                  case '6':
                  case '7':
                  case '8':
                  case '9':
                  case 'A':
                  case 'B':
                  case 'C':
                  case 'D':
                  case 'E':
                  case 'F':
                  case 'a':
                  case 'b':
                  case 'c':
                  case 'd':
                  case 'e':
                  case 'f':
                      {
                      alt11=1;
                      }
                      break;
  
                  }
  
                  switch (alt11) {
              	case 1 :
              	    // com/dyuproject/protostuff/parser/ProtoLexer.g:252:30: HEX_DIGIT
              	    {
              	    mHEX_DIGIT(); 
  
              	    }
              	    break;
  
              	default :
              	    if ( cnt11 >= 1 ) break loop11;
                          EarlyExitException eee =
                              new EarlyExitException(11, input);
                          throw eee;
                  }
                  cnt11++;
              } while (true);
  
  
              }
  
              state.type = _type;
              state.channel = _channel;
          }
          finally {
          }
      }