docs: public final void mFLOAT() throws RecognitionException {
          try {
              int _type = FLOAT;
              int _channel = DEFAULT_TOKEN_CHANNEL;
              // src/riemann/Query.g:92:5: ( ( '-' )? ( '0' .. '9' )+ ( '.' ( '0' .. '9' )* )? ( EXPONENT )? )
              // src/riemann/Query.g:92:9: ( '-' )? ( '0' .. '9' )+ ( '.' ( '0' .. '9' )* )? ( EXPONENT )?
              {
              // src/riemann/Query.g:92:9: ( '-' )?
              int alt4=2;
              int LA4_0 = input.LA(1);
  
              if ( (LA4_0=='-') ) {
                  alt4=1;
              }
              switch (alt4) {
                  case 1 :
                      // src/riemann/Query.g:92:9: '-'
                      {
                      match('-'); 
  
                      }
                      break;
  
              }
  
              // src/riemann/Query.g:92:14: ( '0' .. '9' )+
              int cnt5=0;
              loop5:
              do {
                  int alt5=2;
                  int LA5_0 = input.LA(1);
  
                  if ( ((LA5_0>='0' && LA5_0<='9')) ) {
                      alt5=1;
                  }
  
  
                  switch (alt5) {
              	case 1 :
              	    // src/riemann/Query.g:92:15: '0' .. '9'
              	    {
              	    matchRange('0','9'); 
  
              	    }
              	    break;
  
              	default :
              	    if ( cnt5 >= 1 ) break loop5;
                          EarlyExitException eee =
                              new EarlyExitException(5, input);
                          throw eee;
                  }
                  cnt5++;
              } while (true);
  
              // src/riemann/Query.g:92:26: ( '.' ( '0' .. '9' )* )?
              int alt7=2;
              int LA7_0 = input.LA(1);
  
              if ( (LA7_0=='.') ) {
                  alt7=1;
              }
              switch (alt7) {
                  case 1 :
                      // src/riemann/Query.g:92:27: '.' ( '0' .. '9' )*
                      {
                      match('.'); 
                      // src/riemann/Query.g:92:31: ( '0' .. '9' )*
                      loop6:
                      do {
                          int alt6=2;
                          int LA6_0 = input.LA(1);
  
                          if ( ((LA6_0>='0' && LA6_0<='9')) ) {
                              alt6=1;
                          }
  
  
                          switch (alt6) {
                      	case 1 :
                      	    // src/riemann/Query.g:92:32: '0' .. '9'
                      	    {
                      	    matchRange('0','9'); 
  
                      	    }
                      	    break;
  
                      	default :
                      	    break loop6;
                          }
                      } while (true);
  
  
                      }
                      break;
  
              }
  
              // src/riemann/Query.g:92:45: ( EXPONENT )?
              int alt8=2;
              int LA8_0 = input.LA(1);
  
              if ( (LA8_0=='E'||LA8_0=='e') ) {
                  alt8=1;
              }
              switch (alt8) {
                  case 1 :
                      // src/riemann/Query.g:92:45: EXPONENT
                      {
                      mEXPONENT(); 
  
                      }
                      break;
  
              }
  
  
              }
  
              state.type = _type;
              state.channel = _channel;
          }
          finally {
          }
      }