code: def processList(lst):
      items = [processArg(x) for x in lst[1:]]
      args = []
      kwds = {}
  
      # An iterator is used instead of implicit iteration to allow
      # skipping ahead in the keyword argument case.
      itemitr = iter(items)
  
      for item in itemitr:
          if isinstance(item, KeywordArg):
              # The next item after the keyword arg marker is its value.
              # This advances the iterator in a way that is compatible
              # with the for loop.
              val = next(itemitr)
              key = item.name
              kwds[key] = val
          else:
              args.append(item)
  
      func = processArg(lst[0])
  
      # list and tuple are two builtins that take a single argument,
      # whereas args is a list. On a KeyError, the call is retried
      # without arg unpacking.
      try:
          return func(*args, **kwds)
      except TypeError:
          return func(args, **kwds)
  
imports: from collections import OrderedDict
  import functools
  import operator
  import re
  from typing import Mapping
  from pyparsing import Keyword, Word, oneOf, Literal, QuotedString, ParseException, Forward, Group, OneOrMore, ParseResults, Regex, ZeroOrMore, alphanums, pyparsing_common, replace_with
label_desc: Use image node_id 4 for calling a global function with example usage: processList(lst) and returns: func, func