def do_memberdef(self, node):
prot = node.attributes['<STR_LIT>'].value<EOL>id = node.attributes['<STR_LIT:id>'].value<EOL>kind = node.attributes['<STR_LIT>'].value<EOL>tmp = node.parentNode.parentNode.parentNode<EOL>compdef = tmp.getElementsByTagName('<STR_LIT>')[<NUM_LIT:0>]<EOL>cdef_kind = compdef.attributes['<STR_LIT>'].value<EOL>if cdef_kind in ('<STR_LIT:file>', '<STR_LIT>', '<STR_LIT:class>', '<STR_LIT>'):<EOL><INDENT>return<EOL><DEDENT>if prot != '<STR_LIT>':<EOL><INDENT>return<EOL><DEDENT>first = self.get_specific_nodes(node, ('<STR_LIT>', '<STR_LIT:name>'))<EOL>name = self.extract_text(first['<STR_LIT:name>'])<EOL>if name[:<NUM_LIT:8>] == '<STR_LIT>':  <EOL><INDENT>return<EOL><DEDENT>if not '<STR_LIT>' in first or kind in ['<STR_LIT>', '<STR_LIT>']:<EOL><INDENT>return<EOL><DEDENT>data = self.extract_text(first['<STR_LIT>'])<EOL>self.add_text('<STR_LIT:\n>')<EOL>self.add_text(['<STR_LIT>', '<STR_LIT:\n>'])<EOL>self.add_text('<STR_LIT>' % (data, data))<EOL>for n in node.childNodes:<EOL><INDENT>if n not in first.values():<EOL><INDENT>self.parse(n)<EOL><DEDENT><DEDENT>self.add_text(['<STR_LIT>', '<STR_LIT:\n>'])<EOL>
Handle cases outside of class, struct, file or namespace. These are
        now dealt with by `handle_overloaded_memberfunction`.
        Do these even exist???