docs: public final void mDigits() throws RecognitionException {
  		try {
  			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1323:7: ( Digit ( ( DigitOrUnderscore )* Digit )? )
  			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1323:9: Digit ( ( DigitOrUnderscore )* Digit )?
  			{
  			mDigit(); 
  
  			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1323:15: ( ( DigitOrUnderscore )* Digit )?
  			int alt18=2;
  			int LA18_0 = input.LA(1);
  			if ( ((LA18_0 >= '0' && LA18_0 <= '9')||LA18_0=='_') ) {
  				alt18=1;
  			}
  			switch (alt18) {
  				case 1 :
  					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1323:16: ( DigitOrUnderscore )* Digit
  					{
  					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1323:16: ( DigitOrUnderscore )*
  					loop17:
  					while (true) {
  						int alt17=2;
  						int LA17_0 = input.LA(1);
  						if ( ((LA17_0 >= '0' && LA17_0 <= '9')) ) {
  							int LA17_1 = input.LA(2);
  							if ( ((LA17_1 >= '0' && LA17_1 <= '9')||LA17_1=='_') ) {
  								alt17=1;
  							}
  
  						}
  						else if ( (LA17_0=='_') ) {
  							alt17=1;
  						}
  
  						switch (alt17) {
  						case 1 :
  							// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:
  							{
  							if ( (input.LA(1) >= '0' && input.LA(1) <= '9')||input.LA(1)=='_' ) {
  								input.consume();
  							}
  							else {
  								MismatchedSetException mse = new MismatchedSetException(null,input);
  								recover(mse);
  								throw mse;
  							}
  							}
  							break;
  
  						default :
  							break loop17;
  						}
  					}
  
  					mDigit(); 
  
  					}
  					break;
  
  			}
  
  			}
  
  		}
  		finally {
  			// do for sure before leaving
  		}
  	}