code: def split_func_name_args_params_handle(tokens):
      
      internal_assert(len(tokens) == 2, "invalid function definition splitting tokens", tokens)
      func_name = tokens[0]
      func_args = []
      func_params = []
      for arg in tokens[1]:
          if len(arg) > 1 and arg[0] in ("*", "**"):
              func_args.append(arg[1])
          elif arg[0] != "*":
              func_args.append(arg[0])
          func_params.append("".join(arg))
      return [
          func_name,
          ", ".join(func_args),
          "(" + ", ".join(func_params) + ")",
      ]
docs: Process splitting a function into name, params, and args.