code: def get_infix_items(tokens, callback=infix_error):
      
      internal_assert(len(tokens) >= 3, "invalid infix tokens", tokens)
      (arg1, func, arg2), tokens = tokens[:3], tokens[3:]
      args = list(arg1) + list(arg2)
      while tokens:
          args = [callback([args, func, []])]
          (func, newarg), tokens = tokens[:2], tokens[2:]
          args += list(newarg)
      return func, args
docs: Perform infix token processing.
  
      Takes a callback that (takes infix tokens and returns a string) to handle inner infix calls.