code: def do_special(self, token):
      if token == "{":
          self.proclevel = self.proclevel + 1
          return self.procmark
      elif token == "}":
          proc = []
          while 1:
              topobject = self.pop()
              if topobject == self.procmark:
                  break
              proc.append(topobject)
          self.proclevel = self.proclevel - 1
          proc.reverse()
          return ps_procedure(proc)
      elif token == "[":
          return self.mark
      elif token == "]":
          return ps_name("]")
      else:
          raise PSTokenError("huh?")
  
imports: from fontTools.misc.textTools import bytechr, byteord, bytesjoin, tobytes, tostr
  from fontTools.misc import eexec
  from .psOperators import PSOperators, ps_StandardEncoding, ps_array, ps_boolean, ps_dict, ps_integer, ps_literal, ps_mark, ps_name, ps_operator, ps_procedure, ps_procmark, ps_real, ps_string
  import re
  from collections.abc import Callable
  from string import whitespace
  import logging
label_desc: Use image node_id 13 for calling the PSInterpreter obj's underlying member method code with example usage: obj.do_special(token) and returns: self, ps_procedure, self, ps_name