nodes: 0, module; 1, function_definition; 2, function_name:submodules; 3, parameters; 4, block; 5, identifier:self; 6, expression_statement; 7, expression_statement; 8, return_statement; 9, comment:"""
          Returns all documented sub-modules in the module sorted
          alphabetically as a list of `pydoc.Module`.
          """; 10, assignment; 11, call; 12, identifier:p; 13, lambda; 14, identifier:sorted; 15, argument_list; 16, lambda_parameters; 17, boolean_operator; 18, call; 19, identifier:o; 20, call; 21, call; 22, identifier:filter; 23, argument_list; 24, identifier:isinstance; 25, argument_list; 26, attribute; 27, argument_list; 28, identifier:p; 29, call; 30, identifier:o; 31, identifier:Module; 32, identifier:self; 33, identifier:_docfilter; 34, identifier:o; 35, attribute; 36, argument_list; 37, attribute; 38, identifier:values; 39, identifier:self; 40, identifier:doc
code: def submodules(self):
          """
          Returns all documented sub-modules in the module sorted
          alphabetically as a list of `pydoc.Module`.
          """
          p = lambda o: isinstance(o, Module) and self._docfilter(o)
          return sorted(filter(p, self.doc.values()))