docs: public final void mNUMBER() throws RecognitionException {
          try {
              int _type = NUMBER;
              int _channel = DEFAULT_TOKEN_CHANNEL;
              // EventFilter.g:198:5: ( ( '+' | '-' )? ( '0' .. '9' )+ ( '.' ( '0' .. '9' )* ( EXPONENT )? )? | ( '+' | '-' )? '.' ( '0' .. '9' )+ ( EXPONENT )? | ( '+' | '-' )? ( '0' .. '9' )+ EXPONENT )
              int alt11=3;
              alt11 = dfa11.predict(input);
              switch (alt11) {
                  case 1 :
                      // EventFilter.g:198:9: ( '+' | '-' )? ( '0' .. '9' )+ ( '.' ( '0' .. '9' )* ( EXPONENT )? )?
                      {
                      // EventFilter.g:198:9: ( '+' | '-' )?
                      int alt1=2;
                      int LA1_0 = input.LA(1);
  
                      if ( (LA1_0=='+'||LA1_0=='-') ) {
                          alt1=1;
                      }
                      switch (alt1) {
                          case 1 :
                              // EventFilter.g:
                              {
                              if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
                                  input.consume();
                              }
                              else {
                                  MismatchedSetException mse = new MismatchedSetException(null,input);
                                  recover(mse);
                                  throw mse;
                              }
  
  
                              }
                              break;
  
                      }
  
  
                      // EventFilter.g:198:20: ( '0' .. '9' )+
                      int cnt2=0;
                      loop2:
                      do {
                          int alt2=2;
                          int LA2_0 = input.LA(1);
  
                          if ( ((LA2_0 >= '0' && LA2_0 <= '9')) ) {
                              alt2=1;
                          }
  
  
                          switch (alt2) {
                      	case 1 :
                      	    // EventFilter.g:
                      	    {
                      	    if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) {
                      	        input.consume();
                      	    }
                      	    else {
                      	        MismatchedSetException mse = new MismatchedSetException(null,input);
                      	        recover(mse);
                      	        throw mse;
                      	    }
  
  
                      	    }
                      	    break;
  
                      	default :
                      	    if ( cnt2 >= 1 ) break loop2;
                                  EarlyExitException eee =
                                      new EarlyExitException(2, input);
                                  throw eee;
                          }
                          cnt2++;
                      } while (true);
  
  
                      // EventFilter.g:198:32: ( '.' ( '0' .. '9' )* ( EXPONENT )? )?
                      int alt5=2;
                      int LA5_0 = input.LA(1);
  
                      if ( (LA5_0=='.') ) {
                          alt5=1;
                      }
                      switch (alt5) {
                          case 1 :
                              // EventFilter.g:198:33: '.' ( '0' .. '9' )* ( EXPONENT )?
                              {
                              match('.'); 
  
                              // EventFilter.g:198:37: ( '0' .. '9' )*
                              loop3:
                              do {
                                  int alt3=2;
                                  int LA3_0 = input.LA(1);
  
                                  if ( ((LA3_0 >= '0' && LA3_0 <= '9')) ) {
                                      alt3=1;
                                  }
  
  
                                  switch (alt3) {
                              	case 1 :
                              	    // EventFilter.g:
                              	    {
                              	    if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) {
                              	        input.consume();
                              	    }
                              	    else {
                              	        MismatchedSetException mse = new MismatchedSetException(null,input);
                              	        recover(mse);
                              	        throw mse;
                              	    }
  
  
                              	    }
                              	    break;
  
                              	default :
                              	    break loop3;
                                  }
                              } while (true);
  
  
                              // EventFilter.g:198:49: ( EXPONENT )?
                              int alt4=2;
                              int LA4_0 = input.LA(1);
  
                              if ( (LA4_0=='E'||LA4_0=='e') ) {
                                  alt4=1;
                              }
                              switch (alt4) {
                                  case 1 :
                                      // EventFilter.g:198:49: EXPONENT
                                      {
                                      mEXPONENT(); 
  
  
                                      }
                                      break;
  
                              }
  
  
                              }
                              break;
  
                      }
  
  
                      }
                      break;
                  case 2 :
                      // EventFilter.g:199:9: ( '+' | '-' )? '.' ( '0' .. '9' )+ ( EXPONENT )?
                      {
                      // EventFilter.g:199:9: ( '+' | '-' )?
                      int alt6=2;
                      int LA6_0 = input.LA(1);
  
                      if ( (LA6_0=='+'||LA6_0=='-') ) {
                          alt6=1;
                      }
                      switch (alt6) {
                          case 1 :
                              // EventFilter.g:
                              {
                              if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
                                  input.consume();
                              }
                              else {
                                  MismatchedSetException mse = new MismatchedSetException(null,input);
                                  recover(mse);
                                  throw mse;
                              }
  
  
                              }
                              break;
  
                      }
  
  
                      match('.'); 
  
                      // EventFilter.g:199:24: ( '0' .. '9' )+
                      int cnt7=0;
                      loop7:
                      do {
                          int alt7=2;
                          int LA7_0 = input.LA(1);
  
                          if ( ((LA7_0 >= '0' && LA7_0 <= '9')) ) {
                              alt7=1;
                          }
  
  
                          switch (alt7) {
                      	case 1 :
                      	    // EventFilter.g:
                      	    {
                      	    if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) {
                      	        input.consume();
                      	    }
                      	    else {
                      	        MismatchedSetException mse = new MismatchedSetException(null,input);
                      	        recover(mse);
                      	        throw mse;
                      	    }
  
  
                      	    }
                      	    break;
  
                      	default :
                      	    if ( cnt7 >= 1 ) break loop7;
                                  EarlyExitException eee =
                                      new EarlyExitException(7, input);
                                  throw eee;
                          }
                          cnt7++;
                      } while (true);
  
  
                      // EventFilter.g:199:36: ( EXPONENT )?
                      int alt8=2;
                      int LA8_0 = input.LA(1);
  
                      if ( (LA8_0=='E'||LA8_0=='e') ) {
                          alt8=1;
                      }
                      switch (alt8) {
                          case 1 :
                              // EventFilter.g:199:36: EXPONENT
                              {
                              mEXPONENT(); 
  
  
                              }
                              break;
  
                      }
  
  
                      }
                      break;
                  case 3 :
                      // EventFilter.g:200:9: ( '+' | '-' )? ( '0' .. '9' )+ EXPONENT
                      {
                      // EventFilter.g:200:9: ( '+' | '-' )?
                      int alt9=2;
                      int LA9_0 = input.LA(1);
  
                      if ( (LA9_0=='+'||LA9_0=='-') ) {
                          alt9=1;
                      }
                      switch (alt9) {
                          case 1 :
                              // EventFilter.g:
                              {
                              if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
                                  input.consume();
                              }
                              else {
                                  MismatchedSetException mse = new MismatchedSetException(null,input);
                                  recover(mse);
                                  throw mse;
                              }
  
  
                              }
                              break;
  
                      }
  
  
                      // EventFilter.g:200:20: ( '0' .. '9' )+
                      int cnt10=0;
                      loop10:
                      do {
                          int alt10=2;
                          int LA10_0 = input.LA(1);
  
                          if ( ((LA10_0 >= '0' && LA10_0 <= '9')) ) {
                              alt10=1;
                          }
  
  
                          switch (alt10) {
                      	case 1 :
                      	    // EventFilter.g:
                      	    {
                      	    if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) {
                      	        input.consume();
                      	    }
                      	    else {
                      	        MismatchedSetException mse = new MismatchedSetException(null,input);
                      	        recover(mse);
                      	        throw mse;
                      	    }
  
  
                      	    }
                      	    break;
  
                      	default :
                      	    if ( cnt10 >= 1 ) break loop10;
                                  EarlyExitException eee =
                                      new EarlyExitException(10, input);
                                  throw eee;
                          }
                          cnt10++;
                      } while (true);
  
  
                      mEXPONENT(); 
  
  
                      }
                      break;
  
              }
              state.type = _type;
              state.channel = _channel;
          }
          finally {
          	// do for sure before leaving
          }
      }