code: def next_(self):
      self.scan_over_(Lexer.CHAR_WHITESPACE_)
      location = self.location_()
      start = self.pos_
      text = self.text_
      limit = len(text)
      if start >= limit:
          raise StopIteration()
      cur_char = text[start]
      next_char = text[start + 1] if start + 1 < limit else None
  
      if cur_char == "\n":
          self.pos_ += 1
          self.line_ += 1
          self.line_start_ = self.pos_
          return (Lexer.NEWLINE, None, location)
      if cur_char == "\r":
          self.pos_ += 2 if next_char == "\n" else 1
          self.line_ += 1
          self.line_start_ = self.pos_
          return (Lexer.NEWLINE, None, location)
      if cur_char == '"':
          self.pos_ += 1
          self.scan_until_('"\r\n')
          if (
              self.pos_ < self.text_length_
              and self.text_[self.pos_] == '"'
          ):
              self.pos_ += 1
              return (
                  Lexer.STRING,
                  text[start + 1 : self.pos_ - 1],
                  location,
              )
          else:
              raise VoltLibError(
                  "Expected '\"' to terminate string", location
              )
      if cur_char in Lexer.CHAR_NAME_START_:
          self.pos_ += 1
          self.scan_over_(Lexer.CHAR_NAME_CONTINUATION_)
          token = text[start : self.pos_]
          return (Lexer.NAME, token, location)
      if cur_char in Lexer.CHAR_DIGIT_:
          self.scan_over_(Lexer.CHAR_DIGIT_)
          return (
              Lexer.NUMBER,
              int(text[start : self.pos_], 10),
              location,
          )
      if cur_char == "-" and next_char in Lexer.CHAR_DIGIT_:
          self.pos_ += 1
          self.scan_over_(Lexer.CHAR_DIGIT_)
          return (
              Lexer.NUMBER,
              int(text[start : self.pos_], 10),
              location,
          )
      raise VoltLibError(
          "Unexpected character: '%s'" % cur_char, location
      )
  
file_path: catboost/contrib/python/fonttools/fontTools/voltLib/lexer.py
imports: from fontTools.voltLib.error import VoltLibError
label_desc: Use image node_id 6 for calling the Lexer obj's underlying member method code with example usage: obj.next_() and returns: Lexer,  None,  location, Lexer,  None,  location, Lexer,  token,  location, Lexer,  int,  location, Lexer,  int,  location, Lexer,  text,  location