code: def compat(self, token, iterable):
      indents = []
      toks_append = self.tokens.append
      startline = token[0] in (NEWLINE, NL)
      prevstring = False
  
      for tok in _itertools.chain([token], iterable):
          toknum, tokval = tok[:2]
          if toknum == ENCODING:
              self.encoding = tokval
              continue
  
          if toknum in (NAME, NUMBER):
              tokval += " "
  
          # Insert a space between two consecutive strings
          if toknum == STRING:
              if prevstring:
                  tokval = " " + tokval
              prevstring = True
          else:
              prevstring = False
  
          if toknum == INDENT:
              indents.append(tokval)
              continue
          elif toknum == DEDENT:
              indents.pop()
              continue
          elif toknum in (NEWLINE, NL):
              startline = True
          elif startline and indents:
              toks_append(indents[-1])
              startline = False
          elif toknum == FSTRING_MIDDLE:
              if "{" in tokval or "}" in tokval:
                  tokval = re.sub("{", "{{", tokval)
                  tokval = re.sub("}", "}}", tokval)
  
          toks_append(tokval)
  
imports: from builtins import open
  from codecs import lookup, BOM_UTF8
  import collections
  import functools
  from io import TextIOWrapper
  import itertools
  import re
  import sys
  from token import *
  from token import EXACT_TOKEN_TYPES
  import _tokenize
  import token
label_desc: Use image node_id 4 for calling the Untokenizer obj's underlying member method code with example usage: obj.compat(token, iterable) without return types