scan_numeric_literal

in lib/elastic_apm/sql/tokenizer.rb [255:276]


      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