code: def startElement(self, node):
          
          if node is None:
              return
  
          if self.__filter_location is not None:
              # dont even parse includes.
              # FIXME: go back on dependencies ?
              if node.location.file is None:
                  return
              elif node.location.file.name not in self.__filter_location:
                  return
          # find and call the handler for this element
          log.debug(
              '%s:%d: Found a %s|%s|%s',
              node.location.file,
              node.location.line,
              node.kind.name,
              node.displayname,
              node.spelling)
          # build stuff.
          try:
              stop_recurse = self.parse_cursor(node)
              # Signature of parse_cursor is:
              # if the fn returns True, do not recurse into children.
              # anything else will be ignored.
              if stop_recurse is not False:  # True:
                  return
              # if fn returns something, if this element has children, treat
              # them.
              for child in node.get_children():
                  self.startElement(child)
          except InvalidDefinitionError:
              # if the definition is invalid
              pass
          # startElement returns None.
          return None
docs: Recurses in children of this node