_funcs = re.compile( r'^(?:(?:(?:(?:\w+|\*) )+\*?)?((?:svn|apr)_[a-z_0-9]+)\s*\(|' '^extern\s+(?:(?:(?:\w+ |\* ?))+\*?)?((?:svn|apr)_[a-z_0-9]+)\s*;)', re.M) def extract_funcs(fname): funcs = [ ] for names in _funcs.findall(open(fname).read()): if names[0]: name = names[0] else: name = names[1] if name not in _filter_names: funcs.append(name) return funcs