class ElasticAPM::Sql::Tokenizer

def scan_numeric_literal

rubocop:disable Metrics/CyclomaticComplexity
def scan_numeric_literal
  period = false
  exponent = false
  while (peek = peek_char)
    case peek
    when DIGIT then next_char
    when '.'
      return NUMBER if period
      next_char
      period = true
    when 'e', 'E'
      return NUMBER if exponent
      next_char
      next_char if /[+-]/.match?(peek_char)
    else break
    end
  end
  NUMBER
end