docs: public boolean number(TextProvider textProvider)
          
      {
          clearLastToken(textProvider);
          clearLeadingSpaces(textProvider);
          mark(textProvider);
          if (m_debug)
  	        debug("testing",textProvider);
          StringBuilder sb = new StringBuilder();
          boolean hasDecimal = false;
          while (true)
          {
              char c = getNextChar(textProvider);
              if (c == 'L')
              {
                  remark(textProvider);
                  sb.append(c);
                  break;
              }
              if (c == 'D')
              {
                  remark(textProvider);
                  sb.append(c);
                  break;
              }
              if (c == 'F')
              {
                  remark(textProvider);
                  sb.append(c);
                  break;
              }
              if (!Character.isDigit(c) && c != '.')
              {
                  break;
              }
              if (c == '.')
              {
                  if (hasDecimal)
                  {
                      break;
                  }
                  else
                  {
                      hasDecimal = true;
                  }
              }
              remark(textProvider);
              sb.append(c);
          }
          reset(textProvider); // removes last char
          String s = sb.toString().trim();
          if (s.length() == 0) return false;
          textProvider.setLastToken(s);
          debug(textProvider);
          return true;
      }