docs: def add_descendants(self, node, updateset=None):
          "auxiliary function: add all descendants of node to someset"
          someset = set()
          startnode = self.tab[node]
  
          defout = startnode.default[0]
          if defout is not None:
              someset.add(defout)
          for kwd, matchnode in startnode.named.items():
              if matchnode[0] is not None:
                  someset.add(matchnode[0])
  
          if someset is not None:
              updateset.update(someset)
          else:
              return someset