code: def tokeneater(
      self,
      type,
      token,
      slinecol,
      end,
      line,
      INDENT=tokenize.INDENT,
      DEDENT=tokenize.DEDENT,
      NEWLINE=tokenize.NEWLINE,
      COMMENT=tokenize.COMMENT,
      NL=tokenize.NL,
  ):
      if type == NEWLINE:
          # A program statement, or ENDMARKER, will eventually follow,
          # after some (possibly empty) run of tokens of the form
          #     (NL | COMMENT)* (INDENT | DEDENT+)?
          self.find_stmt = 1
  
      elif type == INDENT:
          self.find_stmt = 1
          self.level += 1
  
      elif type == DEDENT:
          self.find_stmt = 1
          self.level -= 1
  
      elif type == COMMENT:
          if self.find_stmt:
              self.stats.append((slinecol[0], -1))
              # but we're still looking for a new stmt, so leave
              # find_stmt alone
  
      elif type == NL:
          pass
  
      elif self.find_stmt:
          # This is the first "real token" following a NEWLINE, so it
          # must be the first token of the next program statement, or an
          # ENDMARKER.
          self.find_stmt = 0
          if line:  # not endmarker
              self.stats.append((slinecol[0], self.level))
  
file_path: cpython/Tools/patchcheck/reindent.py
imports: import tokenize
  import os
  import shutil
  import sys
label_desc: Use image node_id 5 for calling the Reindenter obj's underlying member method code with example usage: obj.tokeneater(type, token, slinecol, end, line, INDENT, DEDENT, NEWLINE, COMMENT, NL) without return types